Verified Commit acf5264b authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

API: Refactor ADM_remove_pfs_storage()

parent fc07bd6a
Loading
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -37,24 +37,23 @@ main(int argc, char* argv[]) {

    admire::server server{"tcp", argv[1]};

    ADM_pfs_storage_t pfs_storage{};
    ADM_return_t ret = ADM_SUCCESS;
    std::string pfs_name = "gpfs_scratch";
    std::string pfs_mount = "/gpfs/scratch";

    try {
        ret = admire::remove_pfs_storage(server, pfs_storage);
        const auto pfs_storage = admire::register_pfs_storage(
                server, pfs_name, admire::pfs_storage::type::gpfs,
                admire::pfs_storage::ctx{pfs_mount});

        admire::remove_pfs_storage(server, pfs_storage);
    } catch(const std::exception& e) {
        fmt::print(stderr, "FATAL: ADM_remove_pfs_storage() failed: {}\n",
        fmt::print(stderr,
                   "FATAL: ADM_register_pfs_storage() or "
                   "ADM_remove_pfs_storage() failed: {}\n",
                   e.what());
        exit(EXIT_FAILURE);
    }

    if(ret != ADM_SUCCESS) {
        fmt::print(stdout,
                   "ADM_remove_pfs_storage() remote procedure not completed "
                   "successfully\n");
        exit(EXIT_FAILURE);
    }

    fmt::print(stdout, "ADM_remove_pfs_storage() remote procedure completed "
                       "successfully\n");
}
+9 −2
Original line number Diff line number Diff line
@@ -416,9 +416,16 @@ MERCURY_GEN_PROC(
);

/// ADM_remove_pfs_storage
MERCURY_GEN_PROC(ADM_remove_pfs_storage_in_t, ((int32_t) (reqs)))
MERCURY_GEN_PROC(
    ADM_remove_pfs_storage_in_t,
        ((hg_uint64_t) (server_id))
);

MERCURY_GEN_PROC(ADM_remove_pfs_storage_out_t, ((int32_t) (ret)))
MERCURY_GEN_PROC(
    ADM_remove_pfs_storage_out_t,
        ((hg_uint64_t) (op_id))
        ((hg_int32_t)  (retval))
);

/// ADM_input
MERCURY_GEN_PROC(ADM_input_in_t,
+6 −20
Original line number Diff line number Diff line
@@ -322,29 +322,15 @@ update_pfs_storage(const server& srv, const pfs_storage& pfs_storage,
    }
}

ADM_return_t
remove_pfs_storage(const server& srv, ADM_pfs_storage_t pfs_storage) {
    (void) srv;
    (void) pfs_storage;

    scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb};

    auto endp = rpc_client.lookup(srv.address());

    LOGGER_INFO("ADM_remove_pfs_storage(...)");

    ADM_remove_pfs_storage_in_t in{};
    ADM_remove_pfs_storage_out_t out;
void
remove_pfs_storage(const server& srv, const pfs_storage& pfs_storage) {

    const auto rpc = endp.call("ADM_remove_pfs_storage", &in, &out);
    const auto ec = detail::remove_pfs_storage(srv, pfs_storage);

    if(out.ret < 0) {
        LOGGER_ERROR("ADM_remove_pfs_storage() = {}", out.ret);
        return static_cast<ADM_return_t>(out.ret);
    if(!ec) {
        throw std::runtime_error(fmt::format(
                "ADM_remove_pfs_storage() error: {}", ec.message()));
    }

    LOGGER_INFO("ADM_remove_pfs_storage() = {}", ADM_SUCCESS);
    return ADM_SUCCESS;
}

admire::transfer
+2 −2
Original line number Diff line number Diff line
@@ -81,8 +81,8 @@ void
update_pfs_storage(const server& srv, const pfs_storage& pfs_storage,
                   const admire::pfs_storage::ctx& pfs_storage_ctx);

ADM_return_t
remove_pfs_storage(const server& srv, ADM_pfs_storage_t pfs_storage);
void
remove_pfs_storage(const server& srv, const pfs_storage& pfs_storage);

admire::transfer
transfer_datasets(const server& srv, const job& job,
+2 −4
Original line number Diff line number Diff line
@@ -162,10 +162,8 @@ ADM_update_pfs_storage(ADM_server_t server, ADM_pfs_storage_t pfs_storage,

ADM_return_t
ADM_remove_pfs_storage(ADM_server_t server, ADM_pfs_storage_t pfs_storage) {

    const admire::server srv{server};

    return admire::remove_pfs_storage(srv, pfs_storage);
    return admire::detail::remove_pfs_storage(admire::server{server},
                                              admire::pfs_storage{pfs_storage});
}

ADM_return_t
Loading