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

Fix return for ADM_remove_job()

parent b2f6ed63
Loading
Loading
Loading
Loading
+33 −4
Original line number Diff line number Diff line
@@ -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);
    }
}
+8 −2
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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