Loading examples/ADM_deploy_adhoc_storage.cpp 0 → 100644 +38 −0 Original line number Diff line number Diff line #include <fmt/format.h> #include <admire.hpp> int main(int argc, char* argv[]) { if(argc != 3) { fmt::print(stderr, "ERROR: no location provided\n"); fmt::print(stderr, "Usage: ADM_deploy_adhoc_storage <REMOTE_IP> " "<JOB_REQS>\n"); exit(EXIT_FAILURE); } admire::server server{"tcp", argv[1]}; ADM_job_handle_t job{}; ADM_adhoc_storage_handle_t adhoc_handle{}; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::deploy_adhoc_storage(server, job, adhoc_handle); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_deploy_adhoc_storage() failed: {}\n", e.what()); exit(EXIT_FAILURE); } if(ret != ADM_SUCCESS) { fmt::print(stdout, "ADM_deploy_adhoc_storage() remote procedure not completed " "successfully\n"); exit(EXIT_FAILURE); } fmt::print(stdout, "ADM_deploy_adhoc_storage() remote procedure completed " "successfully\n"); } examples/CMakeLists.txt +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ list(APPEND examples ping ADM_register_job ADM_update_job ADM_remove_job ADM_register_adhoc_storage ADM_update_adhoc_storage ADM_remove_adhoc_storage ADM_register_adhoc_storage ADM_update_adhoc_storage ADM_remove_adhoc_storage ADM_deploy_adhoc_storage ADM_in_situ_ops ADM_in_transit_ops ADM_transfer_dataset ADM_set_dataset_information ADM_set_io_resources ADM_get_transfer_priority ADM_set_transfer_priority ADM_cancel_transfer ADM_get_pending_transfers Loading src/api/admire.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -229,7 +229,25 @@ deploy_adhoc_storage(const server& srv, ADM_job_handle_t job, (void) job; (void) adhoc_handle; return ADM_OTHER_ERROR; scord::network::rpc_client rpc_client{srv.m_protocol}; rpc_client.register_rpcs(); auto endp = rpc_client.lookup(srv.m_address); LOGGER_INFO("ADM_deploy_adhoc_storage(...)"); ADM_deploy_adhoc_storage_in_t in{}; ADM_deploy_adhoc_storage_out_t out; endp.call("ADM_deploy_adhoc_storage", &in, &out); if(out.ret < 0) { LOGGER_ERROR("ADM_deploy_adhoc_storage() = {}", out.ret); return static_cast<ADM_return_t>(out.ret); } LOGGER_INFO("ADM_deploy_adhoc_storage() = {}", ADM_SUCCESS); return ADM_SUCCESS; } ADM_return_t Loading src/network/engine.hpp +6 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,12 @@ struct engine { ADM_remove_adhoc_storage_out_t, ADM_remove_adhoc_storage, true); REGISTER_RPC(m_context->m_mid, m_context->m_rpc_names, "ADM_deploy_adhoc_storage", ADM_deploy_adhoc_storage_in_t, ADM_deploy_adhoc_storage_out_t, ADM_deploy_adhoc_storage, true); REGISTER_RPC(m_context->m_mid, m_context->m_rpc_names, "ADM_input", ADM_input_in_t, ADM_input_out_t, ADM_input, true); Loading src/network/rpcs.cpp +31 −0 Original line number Diff line number Diff line Loading @@ -227,6 +227,37 @@ ADM_remove_adhoc_storage(hg_handle_t h) { DEFINE_MARGO_RPC_HANDLER(ADM_remove_adhoc_storage); static void ADM_deploy_adhoc_storage(hg_handle_t h) { hg_return_t ret; ADM_deploy_adhoc_storage_in_t in; ADM_deploy_adhoc_storage_out_t out; margo_instance_id mid = margo_hg_handle_get_instance(h); ret = margo_get_input(h, &in); assert(ret == HG_SUCCESS); out.ret = -1; LOGGER_INFO("ADM_deploy_adhoc_storage()"); out.ret = 0; ret = margo_respond(h, &out); assert(ret == HG_SUCCESS); ret = margo_free_input(h, &in); assert(ret == HG_SUCCESS); ret = margo_destroy(h); assert(ret == HG_SUCCESS); } DEFINE_MARGO_RPC_HANDLER(ADM_deploy_adhoc_storage); /** * Specifes the origin location in a storage tier where input is located, as * well as the target location where it should be placed in a different storage Loading Loading
examples/ADM_deploy_adhoc_storage.cpp 0 → 100644 +38 −0 Original line number Diff line number Diff line #include <fmt/format.h> #include <admire.hpp> int main(int argc, char* argv[]) { if(argc != 3) { fmt::print(stderr, "ERROR: no location provided\n"); fmt::print(stderr, "Usage: ADM_deploy_adhoc_storage <REMOTE_IP> " "<JOB_REQS>\n"); exit(EXIT_FAILURE); } admire::server server{"tcp", argv[1]}; ADM_job_handle_t job{}; ADM_adhoc_storage_handle_t adhoc_handle{}; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::deploy_adhoc_storage(server, job, adhoc_handle); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_deploy_adhoc_storage() failed: {}\n", e.what()); exit(EXIT_FAILURE); } if(ret != ADM_SUCCESS) { fmt::print(stdout, "ADM_deploy_adhoc_storage() remote procedure not completed " "successfully\n"); exit(EXIT_FAILURE); } fmt::print(stdout, "ADM_deploy_adhoc_storage() remote procedure completed " "successfully\n"); }
examples/CMakeLists.txt +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ list(APPEND examples ping ADM_register_job ADM_update_job ADM_remove_job ADM_register_adhoc_storage ADM_update_adhoc_storage ADM_remove_adhoc_storage ADM_register_adhoc_storage ADM_update_adhoc_storage ADM_remove_adhoc_storage ADM_deploy_adhoc_storage ADM_in_situ_ops ADM_in_transit_ops ADM_transfer_dataset ADM_set_dataset_information ADM_set_io_resources ADM_get_transfer_priority ADM_set_transfer_priority ADM_cancel_transfer ADM_get_pending_transfers Loading
src/api/admire.cpp +19 −1 Original line number Diff line number Diff line Loading @@ -229,7 +229,25 @@ deploy_adhoc_storage(const server& srv, ADM_job_handle_t job, (void) job; (void) adhoc_handle; return ADM_OTHER_ERROR; scord::network::rpc_client rpc_client{srv.m_protocol}; rpc_client.register_rpcs(); auto endp = rpc_client.lookup(srv.m_address); LOGGER_INFO("ADM_deploy_adhoc_storage(...)"); ADM_deploy_adhoc_storage_in_t in{}; ADM_deploy_adhoc_storage_out_t out; endp.call("ADM_deploy_adhoc_storage", &in, &out); if(out.ret < 0) { LOGGER_ERROR("ADM_deploy_adhoc_storage() = {}", out.ret); return static_cast<ADM_return_t>(out.ret); } LOGGER_INFO("ADM_deploy_adhoc_storage() = {}", ADM_SUCCESS); return ADM_SUCCESS; } ADM_return_t Loading
src/network/engine.hpp +6 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,12 @@ struct engine { ADM_remove_adhoc_storage_out_t, ADM_remove_adhoc_storage, true); REGISTER_RPC(m_context->m_mid, m_context->m_rpc_names, "ADM_deploy_adhoc_storage", ADM_deploy_adhoc_storage_in_t, ADM_deploy_adhoc_storage_out_t, ADM_deploy_adhoc_storage, true); REGISTER_RPC(m_context->m_mid, m_context->m_rpc_names, "ADM_input", ADM_input_in_t, ADM_input_out_t, ADM_input, true); Loading
src/network/rpcs.cpp +31 −0 Original line number Diff line number Diff line Loading @@ -227,6 +227,37 @@ ADM_remove_adhoc_storage(hg_handle_t h) { DEFINE_MARGO_RPC_HANDLER(ADM_remove_adhoc_storage); static void ADM_deploy_adhoc_storage(hg_handle_t h) { hg_return_t ret; ADM_deploy_adhoc_storage_in_t in; ADM_deploy_adhoc_storage_out_t out; margo_instance_id mid = margo_hg_handle_get_instance(h); ret = margo_get_input(h, &in); assert(ret == HG_SUCCESS); out.ret = -1; LOGGER_INFO("ADM_deploy_adhoc_storage()"); out.ret = 0; ret = margo_respond(h, &out); assert(ret == HG_SUCCESS); ret = margo_free_input(h, &in); assert(ret == HG_SUCCESS); ret = margo_destroy(h); assert(ret == HG_SUCCESS); } DEFINE_MARGO_RPC_HANDLER(ADM_deploy_adhoc_storage); /** * Specifes the origin location in a storage tier where input is located, as * well as the target location where it should be placed in a different storage Loading