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

ADM_update_job: job_requirements can no longer be updated

parent 0ccff750
Loading
Loading
Loading
Loading
Loading
+6 −22
Original line number Diff line number Diff line
@@ -99,30 +99,14 @@ main(int argc, char* argv[]) {
        goto cleanup;
    }

    ADM_dataset_t new_inputs[NINPUTS];
    ADM_node_t* new_job_nodes = prepare_nodes(NJOB_NODES * 2);
    assert(new_job_nodes);

    for(int i = 0; i < NINPUTS; ++i) {
        const char* pattern = "input-new-dataset-%d";
        size_t n = snprintf(NULL, 0, pattern, i);
        char* id = (char*) alloca(n + 1);
        snprintf(id, n + 1, pattern, i);
        new_inputs[i] = ADM_dataset_create(id);
    }

    ADM_dataset_t new_outputs[NOUTPUTS];

    for(int i = 0; i < NOUTPUTS; ++i) {
        const char* pattern = "output-new-dataset-%d";
        size_t n = snprintf(NULL, 0, pattern, i);
        char* id = (char*) alloca(n + 1);
        snprintf(id, n + 1, pattern, i);
        new_outputs[i] = ADM_dataset_create(id);
    }

    ADM_job_requirements_t new_reqs = ADM_job_requirements_create(
            new_inputs, NINPUTS, new_outputs, NOUTPUTS, adhoc_storage);
    ADM_job_resources_t new_job_resources =
            ADM_job_resources_create(new_job_nodes, NJOB_NODES * 2);
    assert(job_resources);

    ret = ADM_update_job(server, job, job_resources, new_reqs);
    ret = ADM_update_job(server, job, new_job_resources);

    if(ret != ADM_SUCCESS) {
        fprintf(stderr,
+2 −3
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ main(int argc, char* argv[]) {
    admire::server server{"tcp", argv[1]};

    const auto job_nodes = prepare_nodes(NJOB_NODES);
    const auto new_job_nodes = prepare_nodes(NJOB_NODES * 2);
    const auto adhoc_nodes = prepare_nodes(NADHOC_NODES);
    const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS);
    const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS);
@@ -60,14 +61,12 @@ main(int argc, char* argv[]) {
    const auto new_outputs =
            prepare_datasets("output-new-dataset-{}", NOUTPUTS);

    admire::job_requirements new_reqs{new_inputs, new_outputs, gkfs_storage};

    try {
        [[maybe_unused]] const auto job = admire::register_job(
                server, admire::job::resources{job_nodes}, reqs, 0);

        [[maybe_unused]] ADM_return_t ret = admire::update_job(
                server, job, admire::job::resources{job_nodes}, new_reqs);
                server, job, admire::job::resources{new_job_nodes});

        fmt::print(
                stdout,
+5 −0
Original line number Diff line number Diff line
@@ -53,6 +53,11 @@ struct job_info {
        return m_requirements;
    }

    void
    update(admire::job::resources resources) {
        m_resources = std::move(resources);
    }

    admire::job m_job;
    std::optional<admire::job::resources> m_resources;
    std::optional<admire::job_requirements> m_requirements;
+0 −1
Original line number Diff line number Diff line
@@ -310,7 +310,6 @@ MERCURY_GEN_PROC(
    ADM_update_job_in_t,
        ((ADM_job_t) (job))
        ((ADM_job_resources_t) (job_resources))
        ((adm_job_requirements) (reqs))
);

MERCURY_GEN_PROC(
+2 −2
Original line number Diff line number Diff line
@@ -224,8 +224,8 @@ register_job(const server& srv, const job::resources& resources,

ADM_return_t
update_job(const server& srv, const job& job,
           const job::resources& job_resources, const job_requirements& reqs) {
    return detail::update_job(srv, job, job_resources, reqs);
           const job::resources& job_resources) {
    return detail::update_job(srv, job, job_resources);
}

ADM_return_t
Loading