Verified Commit 39b12989 authored by ANA MANZANO RODRIGUEZ's avatar ANA MANZANO RODRIGUEZ Committed by Alberto Miranda
Browse files

Implement ADM_remove_adhoc_storage stub

parent 3454a626
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -327,7 +327,7 @@ MERCURY_GEN_PROC(
MERCURY_GEN_PROC(
    ADM_remove_job_out_t,
        ((hg_uint64_t) (op_id))
        ((int32_t) (retval))
        ((hg_int32_t) (retval))
);

/// ADM_register_adhoc_storage
@@ -341,8 +341,8 @@ MERCURY_GEN_PROC(
MERCURY_GEN_PROC(
    ADM_register_adhoc_storage_out_t,
        ((hg_uint64_t) (op_id))
        ((int32_t)     (retval))
        ((uint64_t)    (id))
        ((hg_int32_t) (retval))
        ((hg_uint64_t) (id))
);

/// ADM_update_adhoc_storage
@@ -359,9 +359,16 @@ MERCURY_GEN_PROC(
);

/// ADM_remove_adhoc_storage
MERCURY_GEN_PROC(ADM_remove_adhoc_storage_in_t, ((int32_t) (reqs)))
MERCURY_GEN_PROC(
    ADM_remove_adhoc_storage_in_t,
        ((hg_uint64_t) (server_id))
);

MERCURY_GEN_PROC(ADM_remove_adhoc_storage_out_t, ((int32_t) (ret)))
MERCURY_GEN_PROC(
    ADM_remove_adhoc_storage_out_t,
        ((hg_uint64_t) (op_id))
        ((hg_int32_t) (retval))
);

/// ADM_deploy_adhoc_storage
MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((int32_t) (reqs)))
+3 −24
Original line number Diff line number Diff line
@@ -255,30 +255,9 @@ update_adhoc_storage(const server& srv,
    return detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage);
}

ADM_return_t
remove_adhoc_storage(const server& srv, ADM_storage_t adhoc_storage) {

    (void) srv;
    (void) adhoc_storage;

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

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

    LOGGER_INFO("ADM_remove_adhoc_storage(...)");

    ADM_remove_adhoc_storage_in_t in{};
    ADM_remove_adhoc_storage_out_t out;

    const auto rpc = endp.call("ADM_remove_adhoc_storage", &in, &out);

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

    LOGGER_INFO("ADM_remove_adhoc_storage() = {}", ADM_SUCCESS);
    return ADM_SUCCESS;
admire::error_code
remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) {
    return detail::remove_adhoc_storage(srv, adhoc_storage);
}

ADM_return_t
+2 −2
Original line number Diff line number Diff line
@@ -67,8 +67,8 @@ update_adhoc_storage(const server& srv,
                     const adhoc_storage::ctx& adhoc_storage_ctx,
                     const adhoc_storage& adhoc_storage);

ADM_return_t
remove_adhoc_storage(const server& srv, ADM_storage_t adhoc_storage);
admire::error_code
remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage);

ADM_return_t
deploy_adhoc_storage(const server& srv, ADM_storage_t adhoc_storage);
+2 −1
Original line number Diff line number Diff line
@@ -116,7 +116,8 @@ ADM_remove_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage) {

    const admire::server srv{server};

    return admire::remove_adhoc_storage(srv, adhoc_storage);
    return admire::detail::remove_adhoc_storage(
            srv, admire::adhoc_storage{adhoc_storage});
}

ADM_return_t
+33 −0
Original line number Diff line number Diff line
@@ -446,4 +446,37 @@ update_adhoc_storage(const server& srv,
    return admire::error_code::success;
}

admire::error_code
remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) {

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

    const auto rpc_id = ::api::remote_procedure::new_id();
    auto endp = rpc_client.lookup(srv.address());

    LOGGER_INFO("rpc id: {} name: {} from: {} => "
                "body: {{adhoc_storage_id: {}}}",
                rpc_id, std::quoted("ADM_"s + __FUNCTION__),
                std::quoted(rpc_client.self_address()), adhoc_storage.id());

    ADM_remove_adhoc_storage_in_t in{adhoc_storage.id()};
    ADM_remove_adhoc_storage_out_t out;

    const auto rpc = endp.call("ADM_remove_adhoc_storage", &in, &out);

    if(const auto rv = admire::error_code{out.retval}; !rv) {
        LOGGER_ERROR("rpc id: {} name: {} from: {} <= "
                     "body: {{retval: {}}} [op_id: {}]",
                     rpc_id, std::quoted("ADM_"s + __FUNCTION__),
                     std::quoted(rpc.origin()), rv, out.op_id);
        return rv;
    }

    LOGGER_INFO("rpc id: {} name: {} from: {} <= "
                "body: {{retval: {}}} [op_id: {}]",
                rpc_id, std::quoted("ADM_"s + __FUNCTION__),
                std::quoted(rpc.origin()), admire::error_code::success,
                out.op_id);
    return admire::error_code::success;
}
} // namespace admire::detail
Loading