Commit a6296c99 authored by Ramon Nou's avatar Ramon Nou
Browse files

Examples with id (Deploy)

parent 2c1fdd05
Loading
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -25,7 +25,9 @@
#include <stdlib.h>
#include <stdio.h>
#include <admire.h>
#include <assert.h>
#include "common.h"
#include <net/proto/rpc_types.h>

#define NADHOC_NODES 25
#define NINPUTS      10
@@ -118,7 +120,8 @@ main(int argc, char* argv[]) {
    }

    // We can now request the deployment to the server
    if((ret = ADM_deploy_adhoc_storage(server, adhoc_storage)) != ADM_SUCCESS) {
    if((ret = ADM_deploy_adhoc_storage(server, adhoc_storage->s_id)) !=
       ADM_SUCCESS) {
        fprintf(stderr, "ADM_deploy_adhoc_storage() failed: %s\n",
                ADM_strerror(ret));
        goto cleanup;
+26 −9
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@
#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[]) {

@@ -38,24 +43,36 @@ main(int argc, char* argv[]) {

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

    std::vector<admire::node> nodes = prepare_nodes(10);
    admire::adhoc_storage::resources res(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);

    admire::adhoc_storage adhoc_storage(
            admire::storage::type::dataclay, "foobar", 1,
    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, res, 100, false);

    ADM_return_t ret = ADM_SUCCESS;
            admire::adhoc_storage::access_type::read_write,
            admire::adhoc_storage::resources{adhoc_nodes}, 100, false};

    try {
        admire::deploy_adhoc_storage(server, adhoc_storage);
        const auto adhoc_storage = admire::register_adhoc_storage(
                server, name, admire::storage::type::dataclay,
                adhoc_storage_ctx);

        fmt::print(stdout,
                   "ADM_register_adhoc_storage() remote procedure completed "
                   "successfully\n");

        admire::deploy_adhoc_storage(server, adhoc_storage.id());

    } catch(const std::exception& e) {
        fmt::print(stderr, "FATAL: ADM_deploy_adhoc_storage() failed: {}\n",
        fmt::print(stderr, "FATAL: ADM_register_adhoc_storage() failed: {}\n",
                   e.what());
        exit(EXIT_FAILURE);
    }

    ADM_return_t ret = ADM_SUCCESS;


    if(ret != ADM_SUCCESS) {
        fmt::print(stdout,
                   "ADM_deploy_adhoc_storage() remote procedure not completed "
+5 −4
Original line number Diff line number Diff line
@@ -174,8 +174,6 @@ typedef struct adm_pfs_context {
    const char* c_mount;
} adm_pfs_context;

hg_return_t
hg_proc_ADM_pfs_context_t(hg_proc_t proc, void* data);

// clang-format off
MERCURY_GEN_STRUCT_PROC(
@@ -374,9 +372,12 @@ MERCURY_GEN_PROC(
);

/// ADM_deploy_adhoc_storage
MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((ADM_storage_t) (adhoc_storage)))
MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_in_t, ((hg_uint64_t) (id)))

MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, ((int32_t) (retval)))
MERCURY_GEN_PROC(ADM_deploy_adhoc_storage_out_t, 
        ((hg_uint64_t) (op_id))
        ((hg_int32_t) (retval))
);

/// ADM_register_pfs_storage
MERCURY_GEN_PROC(ADM_register_pfs_storage_in_t, ((int32_t) (reqs)))
+2 −2
Original line number Diff line number Diff line
@@ -284,9 +284,9 @@ remove_adhoc_storage(const server& srv, const adhoc_storage& adhoc_storage) {
}

void
deploy_adhoc_storage(const server& srv, const admire::adhoc_storage& adhoc_storage) {
deploy_adhoc_storage(const server& srv, const uint64_t adhoc_id) {
   
    const auto ec = detail::deploy_adhoc_storage(srv, adhoc_storage);
    const auto ec = detail::deploy_adhoc_storage(srv, adhoc_id);

    if(!ec) {
        throw std::runtime_error(fmt::format(
+2 −3
Original line number Diff line number Diff line
@@ -147,13 +147,12 @@ ADM_remove_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage);
 * Initiate the deployment of an adhoc storage system instance.
 *
 * @param[in] server The server to which the request is directed
 * @param[in] job An ADM_JOB identifying the originating job.
 * @param[in] adhoc_storage An ADM_STORAGE referring to the adhoc storage
 * @param[in] adhoc_id An ADM_STORAGE referring to the adhoc storage
 * instance of interest.
 * @return Returns ADM_SUCCESS if the remote procedure has completed
 */
ADM_return_t
ADM_deploy_adhoc_storage(ADM_server_t server, ADM_storage_t adhoc_storage);
ADM_deploy_adhoc_storage(ADM_server_t server, u_int64_t adhoc_id);

/**
 * Register a PFS storage tier.
Loading