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

Update ADM_remove_job RPC implementation

parent 6d8f90e9
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -5,30 +5,24 @@
int
main(int argc, char* argv[]) {

    if(argc != 3) {
        fmt::print(stderr, "ERROR: no location provided\n");
        fmt::print(stderr, "Usage: ADM_remove_job <REMOTE_IP> <JOB_REQS>\n");
    if(argc != 2) {
        fmt::print(stderr, "ERROR: no server address provided\n");
        fmt::print(stderr, "Usage: ADM_remove_job <SERVER_ADDRESS>\n");
        exit(EXIT_FAILURE);
    }

    admire::server server{"tcp", argv[1]};

    admire::job job{42};
    ADM_return_t ret = ADM_SUCCESS;

    try {
        ret = admire::remove_job(server, job);
        [[maybe_unused]] const auto ret = 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(stderr, "FATAL: ADM_remove_job() failed: {}\n", e.what());
        exit(EXIT_FAILURE);
    }

    if(ret != ADM_SUCCESS) {
        fmt::print(stdout, "ADM_remove_job() remote procedure not completed "
                           "successfully\n");
        exit(EXIT_FAILURE);
    }

    fmt::print(stdout, "ADM_remove_job() remote procedure completed "
                       "successfully\n");
}
+8 −2
Original line number Diff line number Diff line
@@ -256,9 +256,15 @@ MERCURY_GEN_PROC(
);

/// ADM_remove_job
MERCURY_GEN_PROC(ADM_remove_job_in_t, ((int32_t) (reqs)))
MERCURY_GEN_PROC(
    ADM_remove_job_in_t,
        ((ADM_job_t) (job))
);

MERCURY_GEN_PROC(ADM_remove_job_out_t, ((int32_t) (ret)))
MERCURY_GEN_PROC(
    ADM_remove_job_out_t,
        ((int32_t) (retval))
);

/// ADM_register_adhoc_storage
MERCURY_GEN_PROC(ADM_register_adhoc_storage_in_t, ((int32_t) (reqs)))
+1 −21
Original line number Diff line number Diff line
@@ -202,27 +202,7 @@ update_job(const server& srv, const job& job, const job_requirements& reqs) {

ADM_return_t
remove_job(const server& srv, const job& job) {
    (void) srv;
    (void) job;

    scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb};

    auto endp = rpc_client.lookup(srv.address());

    LOGGER_INFO("ADM_remove_job(...)");

    ADM_remove_job_in_t in{};
    ADM_remove_job_out_t out;

    endp.call("ADM_remove_job", &in, &out);

    if(out.ret < 0) {
        LOGGER_ERROR("ADM_remove_job() = {}", out.ret);
        return static_cast<ADM_return_t>(out.ret);
    }

    LOGGER_INFO("ADM_remove_job() = {}", ADM_SUCCESS);
    return ADM_SUCCESS;
    return detail::remove_job(srv, job);
}

ADM_return_t
+27 −0
Original line number Diff line number Diff line
@@ -222,4 +222,31 @@ update_job(const server& srv, const job& job, const job_requirements& reqs) {
    return ADM_SUCCESS;
}

admire::error_code
remove_job(const server& srv, const job& job) {

    scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb};

    auto endp = rpc_client.lookup(srv.address());

    LOGGER_INFO("RPC (ADM_{}) => {{job: {}}}", __FUNCTION__, job);

    const auto rpc_job = managed_rpc_type<admire::job>{job};

    ADM_remove_job_in_t in{rpc_job.get()};
    ADM_remove_job_out_t out;

    endp.call("ADM_remove_job", &in, &out);

    if(out.retval < 0) {
        const auto retval = static_cast<admire::error_code>(out.retval);
        LOGGER_ERROR("RPC (ADM_{}) <= {{retval: {}}}", __FUNCTION__,
                     retval);        
return retval;
    }

    LOGGER_INFO("RPC (ADM_{}) <= {{retval: {}}}", __FUNCTION__, ADM_SUCCESS);
    return ADM_SUCCESS;
}

} // namespace admire::detail
+3 −0
Original line number Diff line number Diff line
@@ -40,6 +40,9 @@ register_job(const server& srv, const job_requirements& reqs);
admire::error_code
update_job(const server& srv, const job& job, const job_requirements& reqs);

admire::error_code
remove_job(const server& srv, const job& job);

} // namespace admire::detail

#endif // SCORD_ADMIRE_IMPL_HPP
Loading