Skip to content
Snippets Groups Projects
Verified Commit ccebb6b0 authored by Alberto Miranda's avatar Alberto Miranda :hotsprings:
Browse files

Fix return for ADM_remove_job()

parent b2f6ed63
No related branches found
No related tags found
1 merge request!66Resolve "C++ API functions should not return error codes"
......@@ -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[]) {
......@@ -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);
}
}
......@@ -233,9 +233,15 @@ update_job(const server& srv, const job& job,
}
}
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
......
......@@ -54,7 +54,7 @@ register_job(const server& srv, const job::resources& job_resources,
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
......
......@@ -77,7 +77,7 @@ ADM_remove_job(ADM_server_t server, ADM_job_t job) {
const admire::server srv{server};
return admire::remove_job(srv, admire::job{job});
return admire::detail::remove_job(srv, admire::job{job});
}
ADM_return_t
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment