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

[API] Add adhoc controller address to `job_info`

parent 52dd6f4e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -84,11 +84,10 @@ main(int argc, char* argv[]) {

        fmt::print(stdout,
                   "Job metadata:\n"
                   "  adhoc_controller_address: {}\n"
                   "  adhoc_controller: {}\n"
                   "  io_procs: {}\n",
                   info.adhoc_controller_address(), info.io_procs());


    } catch(const std::exception& ex) {
        fmt::print(stderr, "Error: {}\n", ex.what());
        return EXIT_FAILURE;
+11 −0
Original line number Diff line number Diff line
[Unit]
Description=Cargo parallel data stager

[Service]
Type=simple
EnvironmentFile=%S/cargo/%I.cfg
ExecStart=@CMAKE_INSTALL_FULL_DATADIR@/@PROJECT_NAME@/slurm/cargoctl start -s ${CARGO_ADDRESS} -H ${CARGO_HOSTS} -n ${CARGO_NUM_NODES}
ExecStop=@CMAKE_INSTALL_FULL_DATADIR@/@PROJECT_NAME@/slurm/cargoctl stop -s ${CARGO_ADDRESS}
Restart=no
PrivateTmp=true
NoNewPrivileges=true
+15 −5
Original line number Diff line number Diff line
@@ -242,7 +242,7 @@ struct adhoc_storage {
        explicit ctx(ADM_adhoc_context_t ctx);
        explicit operator ADM_adhoc_context_t() const;

        std::string
        std::string const&
        controller_address() const;
        execution_mode
        exec_mode() const;
@@ -292,7 +292,7 @@ struct adhoc_storage {
    type() const;
    std::uint64_t
    id() const;
    adhoc_storage::ctx
    adhoc_storage::ctx const&
    context() const;

    adhoc_storage::resources
@@ -474,8 +474,15 @@ class job_info {

public:
    job_info() = default;
    constexpr explicit job_info(std::uint32_t procs_for_io)
        : m_procs_for_io(procs_for_io) {}
    explicit job_info(std::string adhoc_controller_address,
                      std::uint32_t procs_for_io)
        : m_adhoc_address(std::move(adhoc_controller_address)),
          m_procs_for_io(procs_for_io) {}

    constexpr std::string const&
    adhoc_controller_address() const {
        return m_adhoc_address;
    }

    /**
     * @brief Get the number of processes that should be used for I/O.
@@ -491,9 +498,11 @@ private:
    template <class Archive>
    void
    serialize(Archive& ar) {
        ar & m_adhoc_address;
        ar & m_procs_for_io;
    }

    std::string m_adhoc_address;
    std::uint32_t m_procs_for_io;
};

@@ -670,7 +679,8 @@ struct fmt::formatter<scord::job_info> : formatter<std::string_view> {
    template <typename FormatContext>
    auto
    format(const scord::job_info& ji, FormatContext& ctx) const {
        return format_to(ctx.out(), "{{io_procs: {}}}", ji.io_procs());
        return format_to(ctx.out(), "{{adhoc_controller: {}, io_procs: {}}}",
                         ji.adhoc_controller_address(), ji.io_procs());
    }
};

+3 −3
Original line number Diff line number Diff line
@@ -583,7 +583,7 @@ adhoc_storage::ctx::operator ADM_adhoc_context_t() const {
            m_should_flush);
}

std::string
std::string const&
adhoc_storage::ctx::controller_address() const {
    return m_controller_address;
}
@@ -640,7 +640,7 @@ public:
        return m_id;
    }

    adhoc_storage::ctx
    adhoc_storage::ctx const&
    context() const {
        return m_ctx;
    }
@@ -740,7 +740,7 @@ adhoc_storage::id() const {
    return m_pimpl->id();
}

adhoc_storage::ctx
adhoc_storage::ctx const&
adhoc_storage::context() const {
    return m_pimpl->context();
}
+11 −3
Original line number Diff line number Diff line
@@ -29,10 +29,13 @@

namespace scord::internal {

job_metadata::job_metadata(scord::job job, scord::job::resources resources,
                           scord::job::requirements requirements)
job_metadata::job_metadata(
        scord::job job, scord::job::resources resources,
        scord::job::requirements requirements,
        std::shared_ptr<internal::adhoc_storage_metadata> adhoc_metadata_ptr)
    : m_job(std::move(job)), m_resources(std::move(resources)),
      m_requirements(std::move(requirements)) {}
      m_requirements(std::move(requirements)),
      m_adhoc_metadata_ptr(std::move(adhoc_metadata_ptr)) {}

scord::job
job_metadata::job() const {
@@ -71,6 +74,11 @@ adhoc_storage_metadata::uuid() const {
    return m_uuid;
}

std::string const&
adhoc_storage_metadata::controller_address() const {
    return m_adhoc_storage.context().controller_address();
}

void
adhoc_storage_metadata::update(scord::adhoc_storage::resources new_resources) {
    m_adhoc_storage.update(std::move(new_resources));
Loading