Loading examples/cxx/ADM_get_qos_constraints.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -16,13 +16,12 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; ADM_job_t job{}; ADM_qos_scope_t scope{}; ADM_qos_entity_t entity{}; ADM_qos_limit_t* limits; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::get_qos_constraints(server, job, scope, entity, &limits); ret = admire::get_qos_constraints(server, job, entity, &limits); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_cancel_transfer() failed: {}\n", e.what()); Loading examples/cxx/ADM_set_qos_constraints.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -16,11 +16,12 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; ADM_job_t job{}; ADM_qos_entity_t entity{}; ADM_qos_limit_t limit{}; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::set_qos_constraints(server, job, limit); ret = admire::set_qos_constraints(server, job, entity, limit); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_set_qos_constraints() failed: {}\n", e.what()); Loading src/lib/admire.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -564,9 +564,11 @@ get_pending_transfers(const server& srv, ADM_job_t job, } ADM_return_t set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_limit_t limit) { set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t limit) { (void) srv; (void) job; (void) entity; (void) limit; scord::network::rpc_client rpc_client{srv.m_protocol, rpc_registration_cb}; Loading @@ -591,11 +593,10 @@ set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_limit_t limit) { } ADM_return_t get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_scope_t scope, ADM_qos_entity_t entity, ADM_qos_limit_t** limits) { get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t** limits) { (void) srv; (void) job; (void) scope; (void) entity; (void) limits; Loading src/lib/admire.h +34 −18 Original line number Diff line number Diff line Loading @@ -166,14 +166,32 @@ ADM_qos_entity_create(ADM_qos_scope_t scope, ...); ADM_return_t ADM_qos_entity_destroy(ADM_qos_entity_t entity); /** A QoS limit */ typedef struct { // TODO: empty for now ADM_qos_scope_t l_scope; ADM_qos_class_t l_class; ADM_qos_entity_t l_element; } ADM_qos_limit_t; typedef struct adm_qos_limit* ADM_qos_limit_t; /** * Create a QoS limit given an entity and a QoS class. * * @remark QoS limits need to be freed by calling ADM_qos_limit_destroy(). * * @param[in] entity The entity upon which the QoS limit should be enforced. * @param[in] cls The QoS restriction class to apply. * @param[in] value The limit's value. * @return A valid ADM_qos_limit_t if successful or NULL in case of failure. */ ADM_qos_limit_t ADM_qos_limit_create(ADM_qos_entity_t entity, ADM_qos_class_t cls, uint64_t value); /** * Destroy a QoS limit created by ADM_qos_limit_create(). * * @param[in] limit A valid ADM_qos_limit_t * @return ADM_SUCCESS or corresponding ADM error code */ ADM_return_t ADM_qos_limit_destroy(ADM_qos_limit_t limit); /** A transfer mapping */ typedef enum { Loading Loading @@ -509,18 +527,18 @@ ADM_get_pending_transfers(ADM_server_t server, ADM_job_t job, * * @param[in] server The server to which the request is directed * @param[in] job An ADM_JOB identifying the originating job. * @param[in] limit A QOS_LIMIT specifying at least: * - The QOS_SCOPE the limit should be applied to: e.g. * dataset, node, or job. * @param[in] entity An QOS_ENTITY referring to the target of the query, i.e. a * ADM_DATASET, a ADM_NODE, or a ADM_JOB. * @param[in] limit A QOS_LIMIT specifying: * - The QOS_CLASS of the limit (e.g. "bandwidth", "iops", * etc.). * - The QOS_ENTITY it should be applied to (e.g. job, node, * - The VALUE it should be applied to (e.g. job, node, * dataset, etc.) * @return Returns ADM_SUCCESS if the remote procedure has completed */ ADM_return_t ADM_set_qos_constraints(ADM_server_t server, ADM_job_t job, ADM_qos_limit_t limit); ADM_qos_entity_t entity, ADM_qos_limit_t limit); /** Loading @@ -528,17 +546,15 @@ ADM_set_qos_constraints(ADM_server_t server, ADM_job_t job, * * @param[in] server The server to which the request is directed * @param[in] job An ADM_JOB identifying the originating job. * @param[in] scope The scope being queried: dataset, node, or job. * @param[in] entity An QOS_ENTITY referring to the target of the query, i.e. a * RESOURCE_HANDLE, a NODE hostname, or a ADM_JOB. * @param[in] limits A list of QOS_LIMITS that includes all the classes * currently defined for the element as well as the values set for them. * ADM_DATASET, a ADM_NODE, or a ADM_JOB. * @param[in] limits A NULL-terminated array of QOS_LIMITS that includes all the * classes currently defined for the element as well as the values set for them. * @return Returns ADM_SUCCESS if the remote procedure has completed */ ADM_return_t ADM_get_qos_constraints(ADM_server_t server, ADM_job_t job, ADM_qos_scope_t scope, ADM_qos_entity_t entity, ADM_qos_limit_t** limits); ADM_qos_entity_t entity, ADM_qos_limit_t** limits); /** Loading src/lib/admire.hpp +4 −3 Original line number Diff line number Diff line Loading @@ -103,11 +103,12 @@ get_pending_transfers(const server& srv, ADM_job_t job, ADM_transfer_handle_t** pending_transfers); ADM_return_t set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_limit_t limit); set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t limit); ADM_return_t get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_scope_t scope, ADM_qos_entity_t entity, ADM_qos_limit_t** limits); get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t** limits); ADM_return_t define_data_operation(const server& srv, ADM_job_t job, const char* path, Loading Loading
examples/cxx/ADM_get_qos_constraints.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -16,13 +16,12 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; ADM_job_t job{}; ADM_qos_scope_t scope{}; ADM_qos_entity_t entity{}; ADM_qos_limit_t* limits; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::get_qos_constraints(server, job, scope, entity, &limits); ret = admire::get_qos_constraints(server, job, entity, &limits); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_cancel_transfer() failed: {}\n", e.what()); Loading
examples/cxx/ADM_set_qos_constraints.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -16,11 +16,12 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; ADM_job_t job{}; ADM_qos_entity_t entity{}; ADM_qos_limit_t limit{}; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::set_qos_constraints(server, job, limit); ret = admire::set_qos_constraints(server, job, entity, limit); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_set_qos_constraints() failed: {}\n", e.what()); Loading
src/lib/admire.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -564,9 +564,11 @@ get_pending_transfers(const server& srv, ADM_job_t job, } ADM_return_t set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_limit_t limit) { set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t limit) { (void) srv; (void) job; (void) entity; (void) limit; scord::network::rpc_client rpc_client{srv.m_protocol, rpc_registration_cb}; Loading @@ -591,11 +593,10 @@ set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_limit_t limit) { } ADM_return_t get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_scope_t scope, ADM_qos_entity_t entity, ADM_qos_limit_t** limits) { get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t** limits) { (void) srv; (void) job; (void) scope; (void) entity; (void) limits; Loading
src/lib/admire.h +34 −18 Original line number Diff line number Diff line Loading @@ -166,14 +166,32 @@ ADM_qos_entity_create(ADM_qos_scope_t scope, ...); ADM_return_t ADM_qos_entity_destroy(ADM_qos_entity_t entity); /** A QoS limit */ typedef struct { // TODO: empty for now ADM_qos_scope_t l_scope; ADM_qos_class_t l_class; ADM_qos_entity_t l_element; } ADM_qos_limit_t; typedef struct adm_qos_limit* ADM_qos_limit_t; /** * Create a QoS limit given an entity and a QoS class. * * @remark QoS limits need to be freed by calling ADM_qos_limit_destroy(). * * @param[in] entity The entity upon which the QoS limit should be enforced. * @param[in] cls The QoS restriction class to apply. * @param[in] value The limit's value. * @return A valid ADM_qos_limit_t if successful or NULL in case of failure. */ ADM_qos_limit_t ADM_qos_limit_create(ADM_qos_entity_t entity, ADM_qos_class_t cls, uint64_t value); /** * Destroy a QoS limit created by ADM_qos_limit_create(). * * @param[in] limit A valid ADM_qos_limit_t * @return ADM_SUCCESS or corresponding ADM error code */ ADM_return_t ADM_qos_limit_destroy(ADM_qos_limit_t limit); /** A transfer mapping */ typedef enum { Loading Loading @@ -509,18 +527,18 @@ ADM_get_pending_transfers(ADM_server_t server, ADM_job_t job, * * @param[in] server The server to which the request is directed * @param[in] job An ADM_JOB identifying the originating job. * @param[in] limit A QOS_LIMIT specifying at least: * - The QOS_SCOPE the limit should be applied to: e.g. * dataset, node, or job. * @param[in] entity An QOS_ENTITY referring to the target of the query, i.e. a * ADM_DATASET, a ADM_NODE, or a ADM_JOB. * @param[in] limit A QOS_LIMIT specifying: * - The QOS_CLASS of the limit (e.g. "bandwidth", "iops", * etc.). * - The QOS_ENTITY it should be applied to (e.g. job, node, * - The VALUE it should be applied to (e.g. job, node, * dataset, etc.) * @return Returns ADM_SUCCESS if the remote procedure has completed */ ADM_return_t ADM_set_qos_constraints(ADM_server_t server, ADM_job_t job, ADM_qos_limit_t limit); ADM_qos_entity_t entity, ADM_qos_limit_t limit); /** Loading @@ -528,17 +546,15 @@ ADM_set_qos_constraints(ADM_server_t server, ADM_job_t job, * * @param[in] server The server to which the request is directed * @param[in] job An ADM_JOB identifying the originating job. * @param[in] scope The scope being queried: dataset, node, or job. * @param[in] entity An QOS_ENTITY referring to the target of the query, i.e. a * RESOURCE_HANDLE, a NODE hostname, or a ADM_JOB. * @param[in] limits A list of QOS_LIMITS that includes all the classes * currently defined for the element as well as the values set for them. * ADM_DATASET, a ADM_NODE, or a ADM_JOB. * @param[in] limits A NULL-terminated array of QOS_LIMITS that includes all the * classes currently defined for the element as well as the values set for them. * @return Returns ADM_SUCCESS if the remote procedure has completed */ ADM_return_t ADM_get_qos_constraints(ADM_server_t server, ADM_job_t job, ADM_qos_scope_t scope, ADM_qos_entity_t entity, ADM_qos_limit_t** limits); ADM_qos_entity_t entity, ADM_qos_limit_t** limits); /** Loading
src/lib/admire.hpp +4 −3 Original line number Diff line number Diff line Loading @@ -103,11 +103,12 @@ get_pending_transfers(const server& srv, ADM_job_t job, ADM_transfer_handle_t** pending_transfers); ADM_return_t set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_limit_t limit); set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t limit); ADM_return_t get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_scope_t scope, ADM_qos_entity_t entity, ADM_qos_limit_t** limits); get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, ADM_qos_limit_t** limits); ADM_return_t define_data_operation(const server& srv, ADM_job_t job, const char* path, Loading