Commit c84a5738 authored by Marc Vef's avatar Marc Vef
Browse files

Adding gkfs_malleability executable, fixing RPC bugs

parent 49349524
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -35,9 +35,10 @@ namespace gkfs::malleable {

int
expand_start(int old_server_conf, int new_server_conf) {
    LOG(INFO, "{}() Expand operation started", __func__);
    return gkfs::malleable::rpc::forward_expand_start(old_server_conf,
    LOG(INFO, "{}() Expand operation enter", __func__);
    gkfs::malleable::rpc::forward_expand_start(old_server_conf,
                                               new_server_conf);
    return 0;
}

int
+6 −0
Original line number Diff line number Diff line
@@ -60,6 +60,12 @@ hermes::detail::register_user_request_types(uint32_t provider_id) {
        (void) registered_requests().add<gkfs::rpc::chunk_stat>(provider_id);
        (void) registered_requests().add<gkfs::rpc::get_dirents_extended>(
                provider_id);
        (void) registered_requests().add<gkfs::malleable::rpc::expand_start>(
                provider_id);
        (void) registered_requests().add<gkfs::malleable::rpc::expand_status>(
                provider_id);
        (void) registered_requests().add<gkfs::malleable::rpc::expand_finalize>(
                provider_id);
    } else {
        (void) registered_requests().add<gkfs::rpc::write_data_proxy>(
                provider_id);
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ register_server_rpcs(margo_instance_id mid) {
    MARGO_REGISTER(mid, gkfs::malleable::rpc::tag::expand_status, void,
                   rpc_err_out_t, rpc_srv_expand_status);
    MARGO_REGISTER(mid, gkfs::malleable::rpc::tag::expand_finalize, void,
                   rpc_err_out_t, rpc_srv_expand_status);
                   rpc_err_out_t, rpc_srv_expand_finalize);
    MARGO_REGISTER(mid, gkfs::malleable::rpc::tag::migrate_metadata,
                   rpc_migrate_metadata_in_t, rpc_err_out_t,
                   rpc_srv_migrate_metadata);
+10 −3
Original line number Diff line number Diff line
################################################################################
# Copyright 2018-2023, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2023, Johannes Gutenberg Universitaet Mainz, Germany          #
# Copyright 2018-2024, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2024, Johannes Gutenberg Universitaet Mainz, Germany          #
#                                                                              #
# This software was partially supported by the                                 #
# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).    #
@@ -36,3 +36,10 @@ if (GKFS_ENABLE_CLIENT_METRICS)
    target_link_libraries(gkfs_clientmetrics2json PUBLIC msgpack_util nlohmann_json::nlohmann_json)
    install(TARGETS gkfs_clientmetrics2json RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif ()

add_executable(gkfs_malleability malleability.cpp)
target_link_libraries(gkfs_malleability
    PUBLIC
    gkfs_user_lib
    CLI11::CLI11)
install(TARGETS gkfs_malleability RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
 No newline at end of file

tools/malleability.cpp

0 → 100644
+60 −0
Original line number Diff line number Diff line
/*
  Copyright 2018-2024, Barcelona Supercomputing Center (BSC), Spain
  Copyright 2015-2024, Johannes Gutenberg Universitaet Mainz, Germany

  This software was partially supported by the
  EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).

  This software was partially supported by the
  ADA-FS project under the SPPEXA project funded by the DFG.

  This file is part of GekkoFS.

  GekkoFS is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  GekkoFS is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with GekkoFS.  If not, see <https://www.gnu.org/licenses/>.

  SPDX-License-Identifier: GPL-3.0-or-later
*/

#include <iostream>
// #include <queue>
#include <string>

#include <CLI/CLI.hpp>
#include <client/user_functions.hpp>


using namespace std;

struct cli_options {
    string hosts_file;
};

int
main(int argc, const char* argv[]) {
    CLI::App desc{"Allowed options"};
    cli_options opts{};

    auto res = gkfs_init();
    cout << "Init result " << res << endl;

    res = gkfs::malleable::expand_start(1, 2);
    cout << "Expand start " << res << endl;
    res = gkfs::malleable::expand_status();
    cout << "Expand status " << res << endl;
    res = gkfs::malleable::expand_finalize();
    cout << "Expand finalize " << res << endl;

    res = gkfs_end();
    cout << "End result " << res << endl;
}
 No newline at end of file