Loading examples/c/ADM_deploy_adhoc_storage.c +4 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,9 @@ #include <stdlib.h> #include <stdio.h> #include <admire.h> #include <assert.h> #include "common.h" #include <net/proto/rpc_types.h> #define NADHOC_NODES 25 #define NINPUTS 10 Loading Loading @@ -118,7 +120,8 @@ main(int argc, char* argv[]) { } // We can now request the deployment to the server if((ret = ADM_deploy_adhoc_storage(server, adhoc_storage)) != ADM_SUCCESS) { if((ret = ADM_deploy_adhoc_storage(server, adhoc_storage->s_id)) != ADM_SUCCESS) { fprintf(stderr, "ADM_deploy_adhoc_storage() failed: %s\n", ADM_strerror(ret)); goto cleanup; Loading examples/cxx/ADM_deploy_adhoc_storage.cpp +26 −9 Original line number Diff line number Diff line Loading @@ -26,6 +26,11 @@ #include <admire.hpp> #include "common.hpp" #define NJOB_NODES 50 #define NADHOC_NODES 25 #define NINPUTS 10 #define NOUTPUTS 5 int main(int argc, char* argv[]) { Loading @@ -38,24 +43,36 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; std::vector<admire::node> nodes = prepare_nodes(10); admire::adhoc_storage::resources res(nodes); const auto adhoc_nodes = prepare_nodes(NADHOC_NODES); const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS); const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS); admire::adhoc_storage adhoc_storage( admire::storage::type::dataclay, "foobar", 1, std::string name = "adhoc_storage_42"; const auto adhoc_storage_ctx = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, res, 100, false); ADM_return_t ret = ADM_SUCCESS; admire::adhoc_storage::access_type::read_write, admire::adhoc_storage::resources{adhoc_nodes}, 100, false}; try { admire::deploy_adhoc_storage(server, adhoc_storage); const auto adhoc_storage = admire::register_adhoc_storage( server, name, admire::storage::type::dataclay, adhoc_storage_ctx); fmt::print(stdout, "ADM_register_adhoc_storage() remote procedure completed " "successfully\n"); admire::deploy_adhoc_storage(server, adhoc_storage.id()); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_deploy_adhoc_storage() failed: {}\n", fmt::print(stderr, "FATAL: ADM_register_adhoc_storage() failed: {}\n", e.what()); exit(EXIT_FAILURE); } ADM_return_t ret = ADM_SUCCESS; if(ret != ADM_SUCCESS) { fmt::print(stdout, "ADM_deploy_adhoc_storage() remote procedure not completed " Loading src/common/net/proto/rpc_types.h +5 −4 Original line number Diff line number Diff line Loading @@ -174,8 +174,6 @@ typedef struct adm_pfs_context { const char* c_mount; } adm_pfs_context; hg_return_t hg_proc_ADM_pfs_context_t(hg_proc_t proc, void* data); // clang-format off MERCURY_GEN_STRUCT_PROC( Loading Loading @@ -374,9 +372,12 @@ MERCURY_GEN_PROC( ); /// ADM_deploy_adhoc_storage MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((ADM_storage_t) (adhoc_storage))) MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((hg_uint64_t) (id))) MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, ((int32_t) (retval))) MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, ((hg_uint64_t) (op_id)) ((hg_int32_t) (retval)) ); /// ADM_register_pfs_storage MERCURY_GEN_PROC(ADM_register_pfs_storage_in_t, ((int32_t) (reqs))) Loading src/lib/admire.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -284,9 +284,9 @@ remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) { } void deploy_adhoc_storage(const server& srv, const admire::adhoc_storage& adhoc_storage) { deploy_adhoc_storage(const server& srv, const uint64_t adhoc_id) { const auto ec = detail::deploy_adhoc_storage(srv, adhoc_storage); const auto ec = detail::deploy_adhoc_storage(srv, adhoc_id); if(!ec) { throw std::runtime_error(fmt::format( Loading src/lib/admire.h +2 −3 Original line number Diff line number Diff line Loading @@ -147,13 +147,12 @@ ADM_remove_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage); * Initiate the deployment of an adhoc storage system instance. * * @param[in] server The server to which the request is directed * @param[in] job An ADM_JOB identifying the originating job. * @param[in] adhoc_storage An ADM_STORAGE referring to the adhoc storage * @param[in] adhoc_id An ADM_STORAGE referring to the adhoc storage * instance of interest. * @return Returns ADM_SUCCESS if the remote procedure has completed */ ADM_return_t ADM_deploy_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage); ADM_deploy_adhoc_storage(ADM_server_t server, u_int64_t adhoc_id); /** * Register a PFS storage tier. Loading Loading
examples/c/ADM_deploy_adhoc_storage.c +4 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,9 @@ #include <stdlib.h> #include <stdio.h> #include <admire.h> #include <assert.h> #include "common.h" #include <net/proto/rpc_types.h> #define NADHOC_NODES 25 #define NINPUTS 10 Loading Loading @@ -118,7 +120,8 @@ main(int argc, char* argv[]) { } // We can now request the deployment to the server if((ret = ADM_deploy_adhoc_storage(server, adhoc_storage)) != ADM_SUCCESS) { if((ret = ADM_deploy_adhoc_storage(server, adhoc_storage->s_id)) != ADM_SUCCESS) { fprintf(stderr, "ADM_deploy_adhoc_storage() failed: %s\n", ADM_strerror(ret)); goto cleanup; Loading
examples/cxx/ADM_deploy_adhoc_storage.cpp +26 −9 Original line number Diff line number Diff line Loading @@ -26,6 +26,11 @@ #include <admire.hpp> #include "common.hpp" #define NJOB_NODES 50 #define NADHOC_NODES 25 #define NINPUTS 10 #define NOUTPUTS 5 int main(int argc, char* argv[]) { Loading @@ -38,24 +43,36 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; std::vector<admire::node> nodes = prepare_nodes(10); admire::adhoc_storage::resources res(nodes); const auto adhoc_nodes = prepare_nodes(NADHOC_NODES); const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS); const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS); admire::adhoc_storage adhoc_storage( admire::storage::type::dataclay, "foobar", 1, std::string name = "adhoc_storage_42"; const auto adhoc_storage_ctx = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, res, 100, false); ADM_return_t ret = ADM_SUCCESS; admire::adhoc_storage::access_type::read_write, admire::adhoc_storage::resources{adhoc_nodes}, 100, false}; try { admire::deploy_adhoc_storage(server, adhoc_storage); const auto adhoc_storage = admire::register_adhoc_storage( server, name, admire::storage::type::dataclay, adhoc_storage_ctx); fmt::print(stdout, "ADM_register_adhoc_storage() remote procedure completed " "successfully\n"); admire::deploy_adhoc_storage(server, adhoc_storage.id()); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_deploy_adhoc_storage() failed: {}\n", fmt::print(stderr, "FATAL: ADM_register_adhoc_storage() failed: {}\n", e.what()); exit(EXIT_FAILURE); } ADM_return_t ret = ADM_SUCCESS; if(ret != ADM_SUCCESS) { fmt::print(stdout, "ADM_deploy_adhoc_storage() remote procedure not completed " Loading
src/common/net/proto/rpc_types.h +5 −4 Original line number Diff line number Diff line Loading @@ -174,8 +174,6 @@ typedef struct adm_pfs_context { const char* c_mount; } adm_pfs_context; hg_return_t hg_proc_ADM_pfs_context_t(hg_proc_t proc, void* data); // clang-format off MERCURY_GEN_STRUCT_PROC( Loading Loading @@ -374,9 +372,12 @@ MERCURY_GEN_PROC( ); /// ADM_deploy_adhoc_storage MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((ADM_storage_t) (adhoc_storage))) MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((hg_uint64_t) (id))) MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, ((int32_t) (retval))) MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, ((hg_uint64_t) (op_id)) ((hg_int32_t) (retval)) ); /// ADM_register_pfs_storage MERCURY_GEN_PROC(ADM_register_pfs_storage_in_t, ((int32_t) (reqs))) Loading
src/lib/admire.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -284,9 +284,9 @@ remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) { } void deploy_adhoc_storage(const server& srv, const admire::adhoc_storage& adhoc_storage) { deploy_adhoc_storage(const server& srv, const uint64_t adhoc_id) { const auto ec = detail::deploy_adhoc_storage(srv, adhoc_storage); const auto ec = detail::deploy_adhoc_storage(srv, adhoc_id); if(!ec) { throw std::runtime_error(fmt::format( Loading
src/lib/admire.h +2 −3 Original line number Diff line number Diff line Loading @@ -147,13 +147,12 @@ ADM_remove_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage); * Initiate the deployment of an adhoc storage system instance. * * @param[in] server The server to which the request is directed * @param[in] job An ADM_JOB identifying the originating job. * @param[in] adhoc_storage An ADM_STORAGE referring to the adhoc storage * @param[in] adhoc_id An ADM_STORAGE referring to the adhoc storage * instance of interest. * @return Returns ADM_SUCCESS if the remote procedure has completed */ ADM_return_t ADM_deploy_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage); ADM_deploy_adhoc_storage(ADM_server_t server, u_int64_t adhoc_id); /** * Register a PFS storage tier. Loading