Loading examples/cxx/ADM_remove_job.cpp +33 −4 Original line number Diff line number Diff line Loading @@ -24,7 +24,12 @@ #include <fmt/format.h> #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 @@ -37,16 +42,40 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; admire::job job{42, 42}; const auto job_nodes = prepare_nodes(NJOB_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); 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, admire::adhoc_storage::resources{adhoc_nodes}, 100, false}; try { [[maybe_unused]] const auto ret = admire::remove_job(server, job); const auto adhoc_storage = admire::register_adhoc_storage( server, name, admire::storage::type::gekkofs, adhoc_storage_ctx); admire::job_requirements reqs(inputs, outputs, adhoc_storage); [[maybe_unused]] const auto job = admire::register_job( server, admire::job::resources{job_nodes}, reqs, 0); // do something with job fmt::print(stdout, "ADM_register_job() remote procedure completed " "successfully\n"); admire::remove_job(server, job); fmt::print(stdout, "ADM_remove_job() remote procedure completed " "successfully\n"); exit(EXIT_SUCCESS); } catch(const std::exception& e) { fmt::print(stdout, "ADM_remove_job() remote procedure not completed " "successfully\n"); fmt::print(stderr, "FATAL: example failed: {}\n", e.what()); exit(EXIT_FAILURE); } } examples/cxx/ADM_update_adhoc_storage.cpp +3 −10 Original line number Diff line number Diff line Loading @@ -63,22 +63,15 @@ main(int argc, char* argv[]) { server, name, admire::storage::type::gekkofs, adhoc_storage_ctx); const auto ret = admire::update_adhoc_storage(server, adhoc_storage, admire::update_adhoc_storage(server, adhoc_storage, new_adhoc_storage_ctx); if(!ret) { fmt::print(stderr, "FATAL: ADM_update_adhoc_storage() failed: {}\n", ret.message()); exit(EXIT_FAILURE); } fmt::print(stdout, "ADM_update_adhoc_storage() remote procedure completed " "successfully\n"); exit(EXIT_SUCCESS); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_register_adhoc_storage() failed: {}\n", e.what()); fmt::print(stderr, "FATAL: example failed: {}\n", e.what()); exit(EXIT_FAILURE); } } examples/cxx/ADM_update_job.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -65,8 +65,7 @@ main(int argc, char* argv[]) { [[maybe_unused]] const auto job = admire::register_job( server, admire::job::resources{job_nodes}, reqs, 0); [[maybe_unused]] ADM_return_t ret = admire::update_job( server, job, admire::job::resources{new_job_nodes}); admire::update_job(server, job, admire::job::resources{new_job_nodes}); fmt::print( stdout, Loading src/lib/admire.cpp +32 −8 Original line number Diff line number Diff line Loading @@ -221,15 +221,27 @@ register_job(const server& srv, const job::resources& resources, return rv.value(); } admire::error_code void update_job(const server& srv, const job& job, const job::resources& job_resources) { return detail::update_job(srv, job, job_resources); const auto ec = detail::update_job(srv, job, job_resources); if(!ec) { throw std::runtime_error( fmt::format("ADM_update_job() error: {}", ec.message())); } } admire::error_code void remove_job(const server& srv, const job& job) { return detail::remove_job(srv, job); const auto ec = detail::remove_job(srv, job); if(!ec) { throw std::runtime_error( fmt::format("ADM_remove_job() error: {}", ec.message())); } } admire::adhoc_storage Loading @@ -248,15 +260,27 @@ register_adhoc_storage(const server& srv, const std::string& name, return rv.value(); } admire::error_code void update_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage, const adhoc_storage::ctx& adhoc_storage_ctx) { return detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage); const auto ec = detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage); if(!ec) { throw std::runtime_error(fmt::format( "ADM_update_adhoc_storage() error: {}", ec.message())); } } admire::error_code void remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) { return detail::remove_adhoc_storage(srv, adhoc_storage); const auto ec = detail::remove_adhoc_storage(srv, adhoc_storage); if(!ec) { throw std::runtime_error(fmt::format( "ADM_remove_adhoc_storage() error: {}", ec.message())); } } ADM_return_t Loading src/lib/admire.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -51,10 +51,10 @@ admire::job register_job(const server& srv, const job::resources& job_resources, const job_requirements& reqs, admire::slurm_job_id slurm_id); admire::error_code void update_job(const server& srv, const job&, const job::resources& job_resources); admire::error_code void remove_job(const server& srv, const job& job); admire::adhoc_storage Loading @@ -62,11 +62,11 @@ register_adhoc_storage(const server& srv, const std::string& name, enum adhoc_storage::type type, const adhoc_storage::ctx& ctx); admire::error_code void update_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage, const adhoc_storage::ctx& adhoc_storage_ctx); admire::error_code void remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage); ADM_return_t Loading Loading
examples/cxx/ADM_remove_job.cpp +33 −4 Original line number Diff line number Diff line Loading @@ -24,7 +24,12 @@ #include <fmt/format.h> #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 @@ -37,16 +42,40 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; admire::job job{42, 42}; const auto job_nodes = prepare_nodes(NJOB_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); 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, admire::adhoc_storage::resources{adhoc_nodes}, 100, false}; try { [[maybe_unused]] const auto ret = admire::remove_job(server, job); const auto adhoc_storage = admire::register_adhoc_storage( server, name, admire::storage::type::gekkofs, adhoc_storage_ctx); admire::job_requirements reqs(inputs, outputs, adhoc_storage); [[maybe_unused]] const auto job = admire::register_job( server, admire::job::resources{job_nodes}, reqs, 0); // do something with job fmt::print(stdout, "ADM_register_job() remote procedure completed " "successfully\n"); admire::remove_job(server, job); fmt::print(stdout, "ADM_remove_job() remote procedure completed " "successfully\n"); exit(EXIT_SUCCESS); } catch(const std::exception& e) { fmt::print(stdout, "ADM_remove_job() remote procedure not completed " "successfully\n"); fmt::print(stderr, "FATAL: example failed: {}\n", e.what()); exit(EXIT_FAILURE); } }
examples/cxx/ADM_update_adhoc_storage.cpp +3 −10 Original line number Diff line number Diff line Loading @@ -63,22 +63,15 @@ main(int argc, char* argv[]) { server, name, admire::storage::type::gekkofs, adhoc_storage_ctx); const auto ret = admire::update_adhoc_storage(server, adhoc_storage, admire::update_adhoc_storage(server, adhoc_storage, new_adhoc_storage_ctx); if(!ret) { fmt::print(stderr, "FATAL: ADM_update_adhoc_storage() failed: {}\n", ret.message()); exit(EXIT_FAILURE); } fmt::print(stdout, "ADM_update_adhoc_storage() remote procedure completed " "successfully\n"); exit(EXIT_SUCCESS); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_register_adhoc_storage() failed: {}\n", e.what()); fmt::print(stderr, "FATAL: example failed: {}\n", e.what()); exit(EXIT_FAILURE); } }
examples/cxx/ADM_update_job.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -65,8 +65,7 @@ main(int argc, char* argv[]) { [[maybe_unused]] const auto job = admire::register_job( server, admire::job::resources{job_nodes}, reqs, 0); [[maybe_unused]] ADM_return_t ret = admire::update_job( server, job, admire::job::resources{new_job_nodes}); admire::update_job(server, job, admire::job::resources{new_job_nodes}); fmt::print( stdout, Loading
src/lib/admire.cpp +32 −8 Original line number Diff line number Diff line Loading @@ -221,15 +221,27 @@ register_job(const server& srv, const job::resources& resources, return rv.value(); } admire::error_code void update_job(const server& srv, const job& job, const job::resources& job_resources) { return detail::update_job(srv, job, job_resources); const auto ec = detail::update_job(srv, job, job_resources); if(!ec) { throw std::runtime_error( fmt::format("ADM_update_job() error: {}", ec.message())); } } admire::error_code void remove_job(const server& srv, const job& job) { return detail::remove_job(srv, job); const auto ec = detail::remove_job(srv, job); if(!ec) { throw std::runtime_error( fmt::format("ADM_remove_job() error: {}", ec.message())); } } admire::adhoc_storage Loading @@ -248,15 +260,27 @@ register_adhoc_storage(const server& srv, const std::string& name, return rv.value(); } admire::error_code void update_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage, const adhoc_storage::ctx& adhoc_storage_ctx) { return detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage); const auto ec = detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage); if(!ec) { throw std::runtime_error(fmt::format( "ADM_update_adhoc_storage() error: {}", ec.message())); } } admire::error_code void remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) { return detail::remove_adhoc_storage(srv, adhoc_storage); const auto ec = detail::remove_adhoc_storage(srv, adhoc_storage); if(!ec) { throw std::runtime_error(fmt::format( "ADM_remove_adhoc_storage() error: {}", ec.message())); } } ADM_return_t Loading
src/lib/admire.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -51,10 +51,10 @@ admire::job register_job(const server& srv, const job::resources& job_resources, const job_requirements& reqs, admire::slurm_job_id slurm_id); admire::error_code void update_job(const server& srv, const job&, const job::resources& job_resources); admire::error_code void remove_job(const server& srv, const job& job); admire::adhoc_storage Loading @@ -62,11 +62,11 @@ register_adhoc_storage(const server& srv, const std::string& name, enum adhoc_storage::type type, const adhoc_storage::ctx& ctx); admire::error_code void update_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage, const adhoc_storage::ctx& adhoc_storage_ctx); admire::error_code void remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage); ADM_return_t Loading