From b40cbebffd26cde0a946460b3927e9ebc79f8f24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:13:25 +0100 Subject: [PATCH 01/30] feat(conf): associations-view in auth policy Introduce associations-view action in authorization policy to control permission to view account tree with user associations and limits. --- CHANGELOG.md | 1 + conf/vendor/policy.yml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80142f59c..d779e420d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 supported Slurm REST API versions. - Introduce `[agents]` > `cacert` gateway parameter for custom path to CA certificate to validate agent SSL/TLS certificate. + - Introduce `associations-view` action in authorization policy. - cli: Introduce `slurm-web` unified executable with subcommands (#655). - docs: Add manpage for unified `slurm-web` command. diff --git a/conf/vendor/policy.yml b/conf/vendor/policy.yml index 092fcbd53..67e82fb8a 100644 --- a/conf/vendor/policy.yml +++ b/conf/vendor/policy.yml @@ -14,6 +14,9 @@ actions: Get _QOS_ entry in main menu and permission to view the list of defined QOS. view-accounts: | Permission to filter jobs by account. + associations-view: | + Get _Accounts_ entry in main menu and permission to view the list of + associations (accounts, users and limits). view-reservations: | Get _Reservations_ entry in main menu and permission to view the list of defined reservations. From 59f38f74fced876de53af4ab696046fe3ed9e5e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:14:09 +0100 Subject: [PATCH 02/30] feat(conf): associations-view in default policy Add permission on associations-view to all authenticated users in default authorization policy. --- CHANGELOG.md | 2 ++ conf/vendor/policy.ini | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d779e420d..2a516526c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Introduce `[agents]` > `cacert` gateway parameter for custom path to CA certificate to validate agent SSL/TLS certificate. - Introduce `associations-view` action in authorization policy. + - Add permission on `associations-view` to all authenticated users in default + authorization policy. - cli: Introduce `slurm-web` unified executable with subcommands (#655). - docs: Add manpage for unified `slurm-web` command. diff --git a/conf/vendor/policy.ini b/conf/vendor/policy.ini index 8d62eb22f..b524f52d7 100644 --- a/conf/vendor/policy.ini +++ b/conf/vendor/policy.ini @@ -13,4 +13,4 @@ user=ALL actions=view-stats,view-jobs,view-nodes [user] -actions=view-stats,view-jobs,view-nodes,view-partitions,view-qos,view-accounts,view-reservations,cache-view,cache-reset +actions=view-stats,view-jobs,view-nodes,view-partitions,view-qos,view-accounts,associations-view,view-reservations,cache-view,cache-reset From a141ab09bcf9bfe99a2908777a57a441554de348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:20:29 +0100 Subject: [PATCH 03/30] feat(conf): associations params in agent conf Introduce [filters]>associations and [cache]>associations parameters in agent configuration. --- CHANGELOG.md | 2 ++ conf/vendor/agent.yml | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a516526c..7b9a0bcb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Introduce `associations-view` action in authorization policy. - Add permission on `associations-view` to all authenticated users in default authorization policy. + - Introduce `[filters]` > `associations` parameter in agent configuration. + - Introduce `[cache]` > `associations` parameter in agent configuration. - cli: Introduce `slurm-web` unified executable with subcommands (#655). - docs: Add manpage for unified `slurm-web` command. diff --git a/conf/vendor/agent.yml b/conf/vendor/agent.yml index 216edcf63..4969209f2 100644 --- a/conf/vendor/agent.yml +++ b/conf/vendor/agent.yml @@ -340,6 +340,17 @@ filters: doc: | List of accounts fields selected in slurmrestd API, all other fields are filtered out. + associations: + type: list + content: str + default: + - account + - max + - parent_account + - qos + - user + doc: | + List of associations fields selected in slurmrestd API, all other fields are filtered out. policy: definition: @@ -483,6 +494,10 @@ cache: type: int default: 60 doc: Expiration delay in seconds for accounts in cache + associations: + type: int + default: 120 + doc: Expiration delay in seconds for associations in cache metrics: enabled: From 9bf82ecf2087d2b8cdbed7e462e522bdeb6869d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Tue, 25 Nov 2025 15:54:50 +0100 Subject: [PATCH 04/30] docs: update configuration reference --- docs/modules/conf/examples/agent.ini | 21 +++++++++++ docs/modules/conf/partials/conf-agent.adoc | 35 +++++++++++++++++++ .../modules/conf/partials/policy-actions.adoc | 5 +++ 3 files changed, 61 insertions(+) diff --git a/docs/modules/conf/examples/agent.ini b/docs/modules/conf/examples/agent.ini index 3a9dc8635..8f73e2bf4 100644 --- a/docs/modules/conf/examples/agent.ini +++ b/docs/modules/conf/examples/agent.ini @@ -434,6 +434,22 @@ reservations= accounts= name +# List of associations fields selected in slurmrestd API, all other fields are +# filtered out. +# +# Default value: +# - account +# - max +# - parent_account +# - qos +# - user +associations= + account + max + parent_account + qos + user + [policy] # Path to RBAC policy definition file with available actions @@ -588,6 +604,11 @@ reservations=60 # Default value: 60 accounts=60 +# Expiration delay in seconds for associations in cache +# +# Default value: 120 +associations=120 + [metrics] # Determine if metrics feature and integration with Prometheus (or diff --git a/docs/modules/conf/partials/conf-agent.adoc b/docs/modules/conf/partials/conf-agent.adoc index 1a82ed937..86b5069e5 100644 --- a/docs/modules/conf/partials/conf-agent.adoc +++ b/docs/modules/conf/partials/conf-agent.adoc @@ -685,6 +685,30 @@ filtered out. * `name` +|- + +|associations +|list[str] +|List of associations fields selected in slurmrestd API, all other fields are filtered out. + + + + + +*Default:* + + +* `account` + +* `max` + +* `parent_account` + +* `qos` + +* `user` + + |- @@ -1055,6 +1079,17 @@ _No default value_ |- +|associations +|int +|Expiration delay in seconds for associations in cache + + + + +*Default:* `120` + +|- + |=== diff --git a/docs/modules/conf/partials/policy-actions.adoc b/docs/modules/conf/partials/policy-actions.adoc index 351e3bfc3..d63e7ec94 100644 --- a/docs/modules/conf/partials/policy-actions.adoc +++ b/docs/modules/conf/partials/policy-actions.adoc @@ -36,6 +36,11 @@ compute nodes in cluster with their status in Slurm. |Permission to filter jobs by account. +|associations-view +|Get _Accounts_ entry in main menu and permission to view the list of +associations (accounts, users and limits). + + |view-reservations |Get _Reservations_ entry in main menu and permission to view the list of defined reservations. From 2c05780e421e5b97aeb88a594f45f1146335f1b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:23:11 +0100 Subject: [PATCH 05/30] feat(agent): add /associations endpoint Add /associations route to get list of accounts, users and limits with adapters for all supported Slurm REST API versions. --- CHANGELOG.md | 1 + slurmweb/apps/agent.py | 1 + slurmweb/slurmrestd/__init__.py | 17 +++++++++++-- slurmweb/slurmrestd/adapters/base.py | 4 +++ slurmweb/slurmrestd/adapters/v0_0_41.py | 34 +++++++++++++++++++++++++ slurmweb/views/agent.py | 5 ++++ 6 files changed, 60 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b9a0bcb4..9f0e40314 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Implement Slurm REST API adapter from v0.0.41 to v0.0.42. - Implement Slurm REST API adapter from v0.0.42 to v0.0.43. - Implement Slurm REST API adapter from v0.0.43 to v0.0.44. + - Add `/associations` route to get list of accounts, users and limits. - gateway: - Add `/agent/{cluster}/ping` route to reverse-proxy request to agent `/ping` endpoint. diff --git a/slurmweb/apps/agent.py b/slurmweb/apps/agent.py index 1c2dc374e..03b2acd5b 100644 --- a/slurmweb/apps/agent.py +++ b/slurmweb/apps/agent.py @@ -51,6 +51,7 @@ class SlurmwebAppAgent(SlurmwebWebApp, RFLTokenizedRBACWebApp): SlurmwebAppRoute(f"/v{get_version()}/qos", views.qos), SlurmwebAppRoute(f"/v{get_version()}/reservations", views.reservations), SlurmwebAppRoute(f"/v{get_version()}/accounts", views.accounts), + SlurmwebAppRoute(f"/v{get_version()}/associations", views.associations), SlurmwebAppRoute(f"/v{get_version()}/cache/stats", views.cache_stats), SlurmwebAppRoute( f"/v{get_version()}/cache/reset", views.cache_reset, methods=["POST"] diff --git a/slurmweb/slurmrestd/__init__.py b/slurmweb/slurmrestd/__init__.py index 28f521f2f..dae009452 100644 --- a/slurmweb/slurmrestd/__init__.py +++ b/slurmweb/slurmrestd/__init__.py @@ -375,6 +375,9 @@ def partitions(self, **kwargs): def accounts(self, **kwargs): return self._request("slurmdb", "accounts", "accounts", **kwargs) + def associations(self: str, **kwargs): + return self._request("slurmdb", "associations", "associations", **kwargs) + def reservations(self: str, **kwargs): return self._request("slurm", "reservations", "reservations", **kwargs) @@ -515,6 +518,11 @@ def accounts(self): super().accounts(), self.filters.accounts ) + def associations(self: str): + return SlurmrestdFiltered.filter_fields( + super().associations(), self.filters.associations + ) + def reservations(self: str): return SlurmrestdFiltered.filter_fields( super().reservations(), self.filters.reservations @@ -587,10 +595,15 @@ def partitions(self): def accounts(self): return self._cached(CacheKey("accounts"), self.cache.accounts, super().accounts) - def reservations(self: str): + def associations(self): + return self._cached( + CacheKey("associations"), self.cache.associations, super().associations + ) + + def reservations(self): return self._cached( CacheKey("reservations"), self.cache.reservations, super().reservations ) - def qos(self: str): + def qos(self): return self._cached(CacheKey("qos"), self.cache.qos, super().qos) diff --git a/slurmweb/slurmrestd/adapters/base.py b/slurmweb/slurmrestd/adapters/base.py index 49ac4b0a7..6649438a2 100644 --- a/slurmweb/slurmrestd/adapters/base.py +++ b/slurmweb/slurmrestd/adapters/base.py @@ -50,6 +50,10 @@ def adapt_slurmdb_accounts(self, data: t.Any) -> t.Any: """Adapt accounts data.""" return data + def adapt_slurmdb_associations(self, data: t.Any) -> t.Any: + """Adapt associations data.""" + return data + def adapt_slurm_reservations(self, data: t.Any) -> t.Any: """Adapt reservations data.""" return data diff --git a/slurmweb/slurmrestd/adapters/v0_0_41.py b/slurmweb/slurmrestd/adapters/v0_0_41.py index 7fd2a0f54..18a956d9d 100644 --- a/slurmweb/slurmrestd/adapters/v0_0_41.py +++ b/slurmweb/slurmrestd/adapters/v0_0_41.py @@ -42,6 +42,40 @@ class AdapterV0_0_41(BaseAdapter): → not used by Slurm-web + responses.200.properties.jobs.items.properties.qosreq → not used by Slurm-web + + GET /slurmdb/v{version}/associations/ + + responses.200.properties.associations.items.properties.accounting.items + .properties.id_alt + → not used by Slurm-web + - parameters.with_deleted + → not used by Slurm-web + - parameters.only_defaults + → not used by Slurm-web + - parameters.without_parent_info + → not used by Slurm-web + - parameters.with_sub_accts + → not used by Slurm-web + - parameters.with_raw_qos + → not used by Slurm-web + - parameters.without_parent_limits + → not used by Slurm-web + - parameters.with_usage + → not used by Slurm-web + + parameters.Include sub acct information + → not used by Slurm-web + + parameters.Include the raw QOS or delta_qos + → not used by Slurm-web + + parameters.Exclude limits from parents + → not used by Slurm-web + + parameters.Exclude parent id/name + → not used by Slurm-web + + parameters.Include usage + → not used by Slurm-web + + parameters.Include deleted associations + → not used by Slurm-web + + parameters.Filter to only defaults + → not used by Slurm-web + """ def adapt_slurmdb_qos(self, data: t.Any) -> t.Any: diff --git a/slurmweb/views/agent.py b/slurmweb/views/agent.py index 569a99f4b..4e9bd1d49 100644 --- a/slurmweb/views/agent.py +++ b/slurmweb/views/agent.py @@ -194,6 +194,11 @@ def accounts(): return jsonify(slurmrest("accounts")) +@rbac_action("associations-view") +def associations(): + return jsonify(slurmrest("associations")) + + @rbac_action("cache-view") def cache_stats(): if current_app.cache is None: From 67ff74a7f1eb5fed004d3697991bc9b2b03a8826 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:24:43 +0100 Subject: [PATCH 06/30] feat(gateway): reverse-proxy associations to agent Add /agent/{cluster}/associations route to reverse-proxy request to agent /associations endpoint. --- CHANGELOG.md | 2 ++ slurmweb/apps/gateway.py | 1 + slurmweb/views/gateway.py | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f0e40314..e458b4ea7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - gateway: - Add `/agent/{cluster}/ping` route to reverse-proxy request to agent `/ping` endpoint. + - Add `/agent/{cluster}/associations` route to reverse-proxy request to agent + `/associations` endpoint. - Possibility to validate agent SSL/TLS certificate with custom CA certificate as an alternative to system default CA certificates (#254). - Replace at runtime base path placeholder in pre-built UI assets by URL path diff --git a/slurmweb/apps/gateway.py b/slurmweb/apps/gateway.py index c22c9a614..8a7e457a8 100644 --- a/slurmweb/apps/gateway.py +++ b/slurmweb/apps/gateway.py @@ -131,6 +131,7 @@ class SlurmwebAppGateway(SlurmwebWebApp, RFLTokenizedWebApp): SlurmwebAppRoute("/api/agents//qos", views.qos), SlurmwebAppRoute("/api/agents//reservations", views.reservations), SlurmwebAppRoute("/api/agents//accounts", views.accounts), + SlurmwebAppRoute("/api/agents//associations", views.associations), SlurmwebAppRoute( "/api/agents//racksdb/", views.racksdb, diff --git a/slurmweb/views/gateway.py b/slurmweb/views/gateway.py index 02cb07e6a..fedfd6c23 100644 --- a/slurmweb/views/gateway.py +++ b/slurmweb/views/gateway.py @@ -336,6 +336,12 @@ def accounts(cluster: str): return proxy_agent(cluster, "accounts", request.token) +@check_jwt +@validate_cluster +def associations(cluster: str): + return proxy_agent(cluster, "associations", request.token) + + @check_jwt @validate_cluster def metrics(cluster: str, metric: str): From 091e63dc59b7fdce2c659a52235e75977a944a67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:26:05 +0100 Subject: [PATCH 07/30] chore(dev): add associations-view perm in dev env --- dev/conf/policy.ini.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/conf/policy.ini.j2 b/dev/conf/policy.ini.j2 index 7f4a1aae6..d25e44eb0 100644 --- a/dev/conf/policy.ini.j2 +++ b/dev/conf/policy.ini.j2 @@ -18,7 +18,7 @@ special={{ users[3].login }} actions=view-stats,view-jobs [admin] -actions=view-stats,view-jobs,view-nodes,view-partitions,view-qos,view-accounts,view-reservations,cache-view,cache-reset +actions=view-stats,view-jobs,view-nodes,view-partitions,view-qos,view-accounts,associations-view,view-reservations,cache-view,cache-reset [special] actions=view-qos From d9f40a429d3490ea09f20be9bc941cac58e4c6d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:26:42 +0100 Subject: [PATCH 08/30] chore(dev): crawl associations assets --- dev/crawler/agent.py | 7 +++++++ dev/crawler/gateway.py | 7 +++++++ dev/crawler/slurmrestd.py | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/dev/crawler/agent.py b/dev/crawler/agent.py index 4893232b4..e36ec46ce 100644 --- a/dev/crawler/agent.py +++ b/dev/crawler/agent.py @@ -52,6 +52,7 @@ def __init__( Asset("qos", "qos", self._crawl_qos), Asset("reservations", "reservations", self._crawl_reservations), Asset("accounts", "accounts", self._crawl_accounts), + Asset("associations", "associations", self._crawl_associations), Asset( "metrics-nodes-hour", "metrics-nodes-hour", @@ -159,6 +160,12 @@ def _crawl_accounts(self): "accounts", ) + def _crawl_associations(self): + self.dump_component_query( + f"/v{get_version()}/associations", + "associations", + ) + def _crawl_metrics_nodes_hour(self): if self.metrics: self.dump_component_query( diff --git a/dev/crawler/gateway.py b/dev/crawler/gateway.py index 4584f5aa4..5c25e6c3b 100644 --- a/dev/crawler/gateway.py +++ b/dev/crawler/gateway.py @@ -226,6 +226,7 @@ def __init__( Asset("qos", "qos", self._crawl_qos), Asset("reservations", "reservations", self._crawl_reservations), Asset("accounts", "accounts", self._crawl_accounts), + Asset("associations", "associations", self._crawl_associations), Asset("racksdb", "racksdb-draw-coordinates", self._crawl_racksdb), Asset( "metrics", @@ -803,6 +804,12 @@ def _crawl_accounts(self): "accounts", ) + def _crawl_associations(self): + self.dump_component_query( + f"/api/agents/{self.cluster.name}/associations", + "associations", + ) + def _crawl_racksdb(self): # RacksDB infrastructure diagram self.dump_component_query( diff --git a/dev/crawler/slurmrestd.py b/dev/crawler/slurmrestd.py index ee3bff54b..418b5bc63 100644 --- a/dev/crawler/slurmrestd.py +++ b/dev/crawler/slurmrestd.py @@ -188,6 +188,7 @@ def __init__( Asset("qos", "slurm-qos", self._crawl_qos), Asset("accounts", "slurm-accounts", self._crawl_accounts), Asset("reservations", "slurm-reservations", self._crawl_reservations), + Asset("associations", "slurmdb-associations", self._crawl_associations), } super().__init__( @@ -840,3 +841,10 @@ def _crawl_reservations(self): f"/slurm/v{self.api_version}/reservations", "slurm-reservations", ) + + def _crawl_associations(self): + # Download associations + self.dump_component_query( + f"/slurmdb/v{self.api_version}/associations", + "slurmdb-associations", + ) From 2d7526a15ad4825bdc2f05063240f1c827517988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:32:26 +0100 Subject: [PATCH 09/30] tests: add missing slurmrestd assets --- .../24.11/0.0.42/slurm-node-planned.json | 135 +++++++++++++++++ .../slurmrestd/24.11/0.0.42/status.json | 4 + .../slurm-node-with-gpus-model-mixed.json | 135 +++++++++++++++++ .../25.05/0.0.42/slurm-node-planned.json | 135 +++++++++++++++++ .../slurmrestd/25.05/0.0.42/status.json | 4 + .../25.05/0.0.43/slurm-node-planned.json | 143 ++++++++++++++++++ .../slurm-node-with-gpus-model-mixed.json | 141 +++++++++++++++++ .../slurmrestd/25.05/0.0.43/status.json | 4 + .../25.11/0.0.41/slurm-node-draining.json | 135 +++++++++++++++++ .../25.11/0.0.41/slurm-node-planned.json | 135 +++++++++++++++++ .../slurmrestd/25.11/0.0.41/status.json | 8 + .../25.11/0.0.42/slurm-node-planned.json | 136 +++++++++++++++++ .../slurmrestd/25.11/0.0.42/status.json | 4 + .../25.11/0.0.43/slurm-node-planned.json | 143 ++++++++++++++++++ .../slurmrestd/25.11/0.0.43/status.json | 4 + 15 files changed, 1266 insertions(+) create mode 100644 tests/assets/slurmrestd/24.11/0.0.42/slurm-node-planned.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.41/slurm-node-with-gpus-model-mixed.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.42/slurm-node-planned.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.43/slurm-node-planned.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.43/slurm-node-with-gpus-model-mixed.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.41/slurm-node-draining.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.41/slurm-node-planned.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.42/slurm-node-planned.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.43/slurm-node-planned.json diff --git a/tests/assets/slurmrestd/24.11/0.0.42/slurm-node-planned.json b/tests/assets/slurmrestd/24.11/0.0.42/slurm-node-planned.json new file mode 100644 index 000000000..9d61fa2ab --- /dev/null +++ b/tests/assets/slurmrestd/24.11/0.0.42/slurm-node-planned.json @@ -0,0 +1,135 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 432, + "free_mem": { + "set": true, + "infinite": false, + "number": 2368 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:2,gpu:h200:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:0(IDX:N/A),gpu:h200:0(IDX:N/A)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479176 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "ia1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "ia1", + "hostname": "ia1", + "state": [ + "IDLE", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "standard" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 0, + "alloc_cpus": 0, + "alloc_idle_cpus": 32, + "tres_used": "", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763125563 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "tres": "cpu=32,mem=512G,billing=32", + "version": "24.11.5" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479176 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.42", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "[admin]:42010(fd:11)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "24", + "micro": "5", + "minor": "11" + }, + "release": "24.11.5", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/24.11/0.0.42/status.json b/tests/assets/slurmrestd/24.11/0.0.42/status.json index 97ff47b17..822ca90a3 100644 --- a/tests/assets/slurmrestd/24.11/0.0.42/status.json +++ b/tests/assets/slurmrestd/24.11/0.0.42/status.json @@ -115,6 +115,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-planned": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-unfound": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.05/0.0.41/slurm-node-with-gpus-model-mixed.json b/tests/assets/slurmrestd/25.05/0.0.41/slurm-node-with-gpus-model-mixed.json new file mode 100644 index 000000000..f01af786b --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.41/slurm-node-with-gpus-model-mixed.json @@ -0,0 +1,135 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 524, + "free_mem": { + "set": true, + "infinite": false, + "number": 1493 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:2(IDX:0-1)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763481719 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "MIXED", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 1536, + "alloc_cpus": 2, + "alloc_idle_cpus": 30, + "tres_used": "cpu=2,mem=1.50G", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763117550 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.05.4" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763481744 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.42/slurm-node-planned.json b/tests/assets/slurmrestd/25.05/0.0.42/slurm-node-planned.json new file mode 100644 index 000000000..23f812f11 --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.42/slurm-node-planned.json @@ -0,0 +1,135 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 483, + "free_mem": { + "set": true, + "infinite": false, + "number": 1878 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:0(IDX:N/A)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479263 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "IDLE", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 0, + "alloc_cpus": 0, + "alloc_idle_cpus": 32, + "tres_used": "", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763117550 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.05.4" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479267 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.42", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.42/status.json b/tests/assets/slurmrestd/25.05/0.0.42/status.json index 97ff47b17..822ca90a3 100644 --- a/tests/assets/slurmrestd/25.05/0.0.42/status.json +++ b/tests/assets/slurmrestd/25.05/0.0.42/status.json @@ -115,6 +115,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-planned": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-unfound": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.05/0.0.43/slurm-node-planned.json b/tests/assets/slurmrestd/25.05/0.0.43/slurm-node-planned.json new file mode 100644 index 000000000..386d5dfc5 --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.43/slurm-node-planned.json @@ -0,0 +1,143 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "tls_cert_last_renewal": { + "set": true, + "infinite": false, + "number": 0 + }, + "cert_flags": [], + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 483, + "free_mem": { + "set": true, + "infinite": false, + "number": 1878 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:0(IDX:N/A)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479237 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "IDLE", + "COMPLETING", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 0, + "alloc_cpus": 0, + "alloc_idle_cpus": 32, + "tres_used": "", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763117550 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "topology": "", + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.05.4" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479238 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.43", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.43/slurm-node-with-gpus-model-mixed.json b/tests/assets/slurmrestd/25.05/0.0.43/slurm-node-with-gpus-model-mixed.json new file mode 100644 index 000000000..4cf34990f --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.43/slurm-node-with-gpus-model-mixed.json @@ -0,0 +1,141 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "tls_cert_last_renewal": { + "set": true, + "infinite": false, + "number": 0 + }, + "cert_flags": [], + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 212, + "free_mem": { + "set": true, + "infinite": false, + "number": 870 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:1(IDX:0)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763482411 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "MIXED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 1024, + "alloc_cpus": 1, + "alloc_idle_cpus": 31, + "tres_used": "cpu=1,mem=1G", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763117550 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "topology": "", + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.05.4" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763482844 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.43", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.43/status.json b/tests/assets/slurmrestd/25.05/0.0.43/status.json index 97ff47b17..822ca90a3 100644 --- a/tests/assets/slurmrestd/25.05/0.0.43/status.json +++ b/tests/assets/slurmrestd/25.05/0.0.43/status.json @@ -115,6 +115,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-planned": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-unfound": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.41/slurm-node-draining.json b/tests/assets/slurmrestd/25.11/0.0.41/slurm-node-draining.json new file mode 100644 index 000000000..604a241d2 --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.41/slurm-node-draining.json @@ -0,0 +1,135 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266696 + }, + "cluster_name": "", + "cores": 32, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 462, + "free_mem": { + "set": true, + "infinite": false, + "number": 2138 + }, + "cpus": 64, + "effective_cpus": 64, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "", + "gres_drained": "N/A", + "gres_used": "", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479149 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "cn1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "cn1", + "hostname": "cn1", + "state": [ + "MIXED", + "DRAIN" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "normal" + ], + "port": 6818, + "real_memory": 131072, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "ECC memory error", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 1763479152 + }, + "reason_set_by_user": "slurm", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 20480, + "alloc_cpus": 40, + "alloc_idle_cpus": 24, + "tres_used": "cpu=40,mem=20G", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763120974 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "tres": "cpu=64,mem=128G,billing=64", + "version": "25.11.0" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479153 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.41/slurm-node-planned.json b/tests/assets/slurmrestd/25.11/0.0.41/slurm-node-planned.json new file mode 100644 index 000000000..1aa014d7a --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.41/slurm-node-planned.json @@ -0,0 +1,135 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 424, + "free_mem": { + "set": true, + "infinite": false, + "number": 2491 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:0(IDX:N/A)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479152 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "IDLE", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 0, + "alloc_cpus": 0, + "alloc_idle_cpus": 32, + "tres_used": "", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763120974 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.11.0" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479153 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.41/status.json b/tests/assets/slurmrestd/25.11/0.0.41/status.json index 72ce4c16c..ebce6203c 100644 --- a/tests/assets/slurmrestd/25.11/0.0.41/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.41/status.json @@ -107,6 +107,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-draining": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-idle": { "content-type": "application/json", "status": 200 @@ -115,6 +119,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-planned": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-unfound": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.42/slurm-node-planned.json b/tests/assets/slurmrestd/25.11/0.0.42/slurm-node-planned.json new file mode 100644 index 000000000..d7f967395 --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.42/slurm-node-planned.json @@ -0,0 +1,136 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 424, + "free_mem": { + "set": true, + "infinite": false, + "number": 2491 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:0(IDX:N/A)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479147 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "IDLE", + "COMPLETING", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 0, + "alloc_cpus": 0, + "alloc_idle_cpus": 32, + "tres_used": "", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763120974 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.11.0" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479148 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.42", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.42/status.json b/tests/assets/slurmrestd/25.11/0.0.42/status.json index 72ce4c16c..6d097f15e 100644 --- a/tests/assets/slurmrestd/25.11/0.0.42/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.42/status.json @@ -115,6 +115,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-planned": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-unfound": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.43/slurm-node-planned.json b/tests/assets/slurmrestd/25.11/0.0.43/slurm-node-planned.json new file mode 100644 index 000000000..64a3ae7a7 --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.43/slurm-node-planned.json @@ -0,0 +1,143 @@ +{ + "nodes": [ + { + "architecture": "x86_64", + "burstbuffer_network_address": "", + "boards": 1, + "boot_time": { + "set": true, + "infinite": false, + "number": 1758266697 + }, + "tls_cert_last_renewal": { + "set": true, + "infinite": false, + "number": 0 + }, + "cert_flags": [], + "cluster_name": "", + "cores": 16, + "specialized_cores": 0, + "cpu_binding": 0, + "cpu_load": 458, + "free_mem": { + "set": true, + "infinite": false, + "number": 2955 + }, + "cpus": 32, + "effective_cpus": 32, + "specialized_cpus": "", + "energy": { + "average_watts": 0, + "base_consumed_energy": 0, + "consumed_energy": 0, + "current_watts": { + "set": true, + "infinite": false, + "number": 0 + }, + "previous_consumed_energy": 0, + "last_collected": 0 + }, + "external_sensors": {}, + "extra": "", + "power": {}, + "features": [], + "active_features": [], + "gpu_spec": "", + "gres": "gpu:h100:4", + "gres_drained": "N/A", + "gres_used": "gpu:h100:0(IDX:N/A)", + "instance_id": "", + "instance_type": "", + "last_busy": { + "set": true, + "infinite": false, + "number": 1763479143 + }, + "mcs_label": "", + "specialized_memory": 0, + "name": "gpu1", + "next_state_after_reboot": [ + "INVALID" + ], + "address": "gpu1", + "hostname": "gpu1", + "state": [ + "IDLE", + "COMPLETING", + "PLANNED" + ], + "operating_system": "Linux 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27)", + "owner": "", + "partitions": [ + "gpu" + ], + "port": 6818, + "real_memory": 524288, + "res_cores_per_gpu": 0, + "comment": "", + "reason": "", + "reason_changed_at": { + "set": true, + "infinite": false, + "number": 0 + }, + "reason_set_by_user": "", + "resume_after": { + "set": true, + "infinite": false, + "number": 0 + }, + "reservation": "", + "alloc_memory": 0, + "alloc_cpus": 0, + "alloc_idle_cpus": 32, + "tres_used": "", + "tres_weighted": 0.0, + "slurmd_start_time": { + "set": true, + "infinite": false, + "number": 1763120974 + }, + "sockets": 2, + "threads": 1, + "temporary_disk": 0, + "weight": 1, + "topology": "", + "tres": "cpu=32,mem=512G,billing=32", + "version": "25.11.0" + } + ], + "last_update": { + "set": true, + "infinite": false, + "number": 1763479144 + }, + "meta": { + "plugin": { + "type": "openapi/slurmctld", + "name": "Slurm OpenAPI slurmctld", + "data_parser": "data_parser/v0.0.43", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "root", + "group": "root" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.43/status.json b/tests/assets/slurmrestd/25.11/0.0.43/status.json index 72ce4c16c..6d097f15e 100644 --- a/tests/assets/slurmrestd/25.11/0.0.43/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.43/status.json @@ -115,6 +115,10 @@ "content-type": "application/json", "status": 200 }, + "slurm-node-planned": { + "content-type": "application/json", + "status": 200 + }, "slurm-node-unfound": { "content-type": "application/json", "status": 200 From 8a56048a824a4ea2c2dd40e90abfcdff7d7eac1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:33:07 +0100 Subject: [PATCH 10/30] tests: add associations assets --- tests/assets/agent/associations.json | 1370 ++++++++++++ tests/assets/agent/status.json | 4 + tests/assets/gateway/associations.json | 1370 ++++++++++++ tests/assets/gateway/status.json | 4 + .../24.05/0.0.41/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/24.05/0.0.41/status.json | 4 + .../24.11/0.0.41/slurmdb-associations.json | 1811 ++++++++++++++++ .../slurmrestd/24.11/0.0.41/status.json | 4 + .../24.11/0.0.42/slurmdb-associations.json | 1811 ++++++++++++++++ .../slurmrestd/24.11/0.0.42/status.json | 4 + .../25.05/0.0.41/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.05/0.0.41/status.json | 4 + .../25.05/0.0.42/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.05/0.0.42/status.json | 4 + .../25.05/0.0.43/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.05/0.0.43/status.json | 4 + .../25.11/0.0.41/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.11/0.0.41/status.json | 4 + .../25.11/0.0.42/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.11/0.0.42/status.json | 4 + .../25.11/0.0.43/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.11/0.0.43/status.json | 4 + .../25.11/0.0.44/slurmdb-associations.json | 1829 +++++++++++++++++ .../slurmrestd/25.11/0.0.44/status.json | 4 + 24 files changed, 21042 insertions(+) create mode 100644 tests/assets/agent/associations.json create mode 100644 tests/assets/gateway/associations.json create mode 100644 tests/assets/slurmrestd/24.05/0.0.41/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/24.11/0.0.41/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/24.11/0.0.42/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.41/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.42/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.05/0.0.43/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.41/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.42/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.43/slurmdb-associations.json create mode 100644 tests/assets/slurmrestd/25.11/0.0.44/slurmdb-associations.json diff --git a/tests/assets/agent/associations.json b/tests/assets/agent/associations.json new file mode 100644 index 000000000..4d79ca680 --- /dev/null +++ b/tests/assets/agent/associations.json @@ -0,0 +1,1370 @@ +[ + { + "account": "root", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "root", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "root" + }, + { + "account": "admin", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "admin", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "jwilson" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "jbeck" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "jthomas" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "progers" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "vhartman" + }, + { + "account": "physic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "physic", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "acuevas" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "dperez" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "mcarrillo" + }, + { + "account": "optic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "physic", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "optic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "rcarson" + }, + { + "account": "optic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "sevans" + }, + { + "account": "scientists", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + } +] diff --git a/tests/assets/agent/status.json b/tests/assets/agent/status.json index 4c97a19f6..adaa2ec1c 100644 --- a/tests/assets/agent/status.json +++ b/tests/assets/agent/status.json @@ -3,6 +3,10 @@ "content-type": "application/json", "status": 200 }, + "associations": { + "content-type": "application/json", + "status": 200 + }, "cache-reset": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/gateway/associations.json b/tests/assets/gateway/associations.json new file mode 100644 index 000000000..4d79ca680 --- /dev/null +++ b/tests/assets/gateway/associations.json @@ -0,0 +1,1370 @@ +[ + { + "account": "root", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "root", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "root" + }, + { + "account": "admin", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "admin", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "jwilson" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "jbeck" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "jthomas" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "progers" + }, + { + "account": "biology", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "vhartman" + }, + { + "account": "physic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "physic", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "acuevas" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "dperez" + }, + { + "account": "acoustic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "mcarrillo" + }, + { + "account": "optic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "physic", + "qos": [ + "normal", + "study" + ], + "user": "" + }, + { + "account": "optic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "rcarson" + }, + { + "account": "optic", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "", + "qos": [ + "normal", + "study" + ], + "user": "sevans" + }, + { + "account": "scientists", + "max": { + "jobs": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "active": { + "infinite": true, + "number": 0, + "set": false + }, + "per": { + "accruing": { + "infinite": true, + "number": 0, + "set": false + }, + "count": { + "infinite": true, + "number": 0, + "set": false + }, + "submitted": { + "infinite": true, + "number": 0, + "set": false + }, + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + }, + "total": { + "infinite": true, + "number": 0, + "set": false + } + }, + "per": { + "account": { + "wall_clock": { + "infinite": true, + "number": 0, + "set": false + } + } + }, + "tres": { + "group": { + "active": [], + "minutes": [] + }, + "minutes": { + "per": { + "job": [] + }, + "total": [] + }, + "per": { + "job": [], + "node": [] + }, + "total": [] + } + }, + "parent_account": "root", + "qos": [ + "normal", + "study" + ], + "user": "" + } +] diff --git a/tests/assets/gateway/status.json b/tests/assets/gateway/status.json index 9de52dfe7..b4bb48774 100644 --- a/tests/assets/gateway/status.json +++ b/tests/assets/gateway/status.json @@ -3,6 +3,10 @@ "content-type": "application/json", "status": 200 }, + "associations": { + "content-type": "application/json", + "status": 200 + }, "cache-stats": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/24.05/0.0.41/slurmdb-associations.json b/tests/assets/slurmrestd/24.05/0.0.41/slurmdb-associations.json new file mode 100644 index 000000000..2eac23809 --- /dev/null +++ b/tests/assets/slurmrestd/24.05/0.0.41/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 1, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 2, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 4, + "is_default": true, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 9, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 5, + "is_default": true, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 12, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 13, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 10, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 11, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 6, + "is_default": true, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 7, + "is_default": true, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 16, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 14, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 15, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 8, + "is_default": true, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 17, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 18, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 3, + "is_default": true, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "/run/slurmrestd/slurmrestd.socket->socket:[2119538481] (fd 8)", + "user": "", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "24", + "micro": "3", + "minor": "05" + }, + "release": "24.05.3", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/24.05/0.0.41/status.json b/tests/assets/slurmrestd/24.05/0.0.41/status.json index 95f34e9dc..a6b220006 100644 --- a/tests/assets/slurmrestd/24.05/0.0.41/status.json +++ b/tests/assets/slurmrestd/24.05/0.0.41/status.json @@ -159,6 +159,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/24.11/0.0.41/slurmdb-associations.json b/tests/assets/slurmrestd/24.11/0.0.41/slurmdb-associations.json new file mode 100644 index 000000000..f281591bc --- /dev/null +++ b/tests/assets/slurmrestd/24.11/0.0.41/slurmdb-associations.json @@ -0,0 +1,1811 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "[admin]:42010(fd:11)", + "user": "", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "24", + "micro": "5", + "minor": "11" + }, + "release": "24.11.5", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/24.11/0.0.41/status.json b/tests/assets/slurmrestd/24.11/0.0.41/status.json index 700af1825..c6e3bc20b 100644 --- a/tests/assets/slurmrestd/24.11/0.0.41/status.json +++ b/tests/assets/slurmrestd/24.11/0.0.41/status.json @@ -175,6 +175,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/24.11/0.0.42/slurmdb-associations.json b/tests/assets/slurmrestd/24.11/0.0.42/slurmdb-associations.json new file mode 100644 index 000000000..1b25b942f --- /dev/null +++ b/tests/assets/slurmrestd/24.11/0.0.42/slurmdb-associations.json @@ -0,0 +1,1811 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.42", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "[admin]:42010(fd:11)", + "user": "", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "24", + "micro": "5", + "minor": "11" + }, + "release": "24.11.5", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/24.11/0.0.42/status.json b/tests/assets/slurmrestd/24.11/0.0.42/status.json index 822ca90a3..e2cc4ef6a 100644 --- a/tests/assets/slurmrestd/24.11/0.0.42/status.json +++ b/tests/assets/slurmrestd/24.11/0.0.42/status.json @@ -163,6 +163,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.05/0.0.41/slurmdb-associations.json b/tests/assets/slurmrestd/25.05/0.0.41/slurmdb-associations.json new file mode 100644 index 000000000..ae0beb8b4 --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.41/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.41/status.json b/tests/assets/slurmrestd/25.05/0.0.41/status.json index 822ca90a3..e2cc4ef6a 100644 --- a/tests/assets/slurmrestd/25.05/0.0.41/status.json +++ b/tests/assets/slurmrestd/25.05/0.0.41/status.json @@ -163,6 +163,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.05/0.0.42/slurmdb-associations.json b/tests/assets/slurmrestd/25.05/0.0.42/slurmdb-associations.json new file mode 100644 index 000000000..3836551b1 --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.42/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.42", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.42/status.json b/tests/assets/slurmrestd/25.05/0.0.42/status.json index 822ca90a3..e2cc4ef6a 100644 --- a/tests/assets/slurmrestd/25.05/0.0.42/status.json +++ b/tests/assets/slurmrestd/25.05/0.0.42/status.json @@ -163,6 +163,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.05/0.0.43/slurmdb-associations.json b/tests/assets/slurmrestd/25.05/0.0.43/slurmdb-associations.json new file mode 100644 index 000000000..ab5611d53 --- /dev/null +++ b/tests/assets/slurmrestd/25.05/0.0.43/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 1, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 2, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 4, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 9, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 5, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 12, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 13, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 10, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 11, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 6, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 7, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 16, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 14, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 15, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 8, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 17, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 18, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 3, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.43", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "4", + "minor": "05" + }, + "release": "25.05.4", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.05/0.0.43/status.json b/tests/assets/slurmrestd/25.05/0.0.43/status.json index 822ca90a3..e2cc4ef6a 100644 --- a/tests/assets/slurmrestd/25.05/0.0.43/status.json +++ b/tests/assets/slurmrestd/25.05/0.0.43/status.json @@ -163,6 +163,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.41/slurmdb-associations.json b/tests/assets/slurmrestd/25.11/0.0.41/slurmdb-associations.json new file mode 100644 index 000000000..bb999ee7e --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.41/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.41", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "nobody", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.41/status.json b/tests/assets/slurmrestd/25.11/0.0.41/status.json index ebce6203c..8a294210e 100644 --- a/tests/assets/slurmrestd/25.11/0.0.41/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.41/status.json @@ -179,6 +179,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.42/slurmdb-associations.json b/tests/assets/slurmrestd/25.11/0.0.42/slurmdb-associations.json new file mode 100644 index 000000000..ebfb88f14 --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.42/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 0, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.42", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "nobody", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.42/status.json b/tests/assets/slurmrestd/25.11/0.0.42/status.json index 6d097f15e..3f7a3fcad 100644 --- a/tests/assets/slurmrestd/25.11/0.0.42/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.42/status.json @@ -175,6 +175,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.43/slurmdb-associations.json b/tests/assets/slurmrestd/25.11/0.0.43/slurmdb-associations.json new file mode 100644 index 000000000..10c0d187e --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.43/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 1, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 2, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 4, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 9, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 5, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 12, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 13, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 10, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 11, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 6, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 7, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 16, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 14, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 15, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 8, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 17, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 18, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 3, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.43", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "nobody", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.43/status.json b/tests/assets/slurmrestd/25.11/0.0.43/status.json index 6d097f15e..3f7a3fcad 100644 --- a/tests/assets/slurmrestd/25.11/0.0.43/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.43/status.json @@ -175,6 +175,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 diff --git a/tests/assets/slurmrestd/25.11/0.0.44/slurmdb-associations.json b/tests/assets/slurmrestd/25.11/0.0.44/slurmdb-associations.json new file mode 100644 index 000000000..a8942de4f --- /dev/null +++ b/tests/assets/slurmrestd/25.11/0.0.44/slurmdb-associations.json @@ -0,0 +1,1829 @@ +{ + "associations": [ + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 1, + "is_default": false, + "lineage": "/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "root", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 2, + "is_default": true, + "lineage": "/0-root/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "root" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 4, + "is_default": false, + "lineage": "/admin/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "admin", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 9, + "is_default": true, + "lineage": "/admin/0-jwilson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jwilson" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 5, + "is_default": false, + "lineage": "/biology/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 12, + "is_default": true, + "lineage": "/biology/0-jbeck/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jbeck" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 13, + "is_default": true, + "lineage": "/biology/0-jthomas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "jthomas" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 10, + "is_default": true, + "lineage": "/biology/0-progers/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "progers" + }, + { + "accounting": [], + "account": "biology", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 11, + "is_default": true, + "lineage": "/biology/0-vhartman/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "vhartman" + }, + { + "accounting": [], + "account": "physic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 6, + "is_default": false, + "lineage": "/physic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 7, + "is_default": false, + "lineage": "/physic/acoustic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 16, + "is_default": true, + "lineage": "/physic/acoustic/0-acuevas/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "acuevas" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 14, + "is_default": true, + "lineage": "/physic/acoustic/0-dperez/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "dperez" + }, + { + "accounting": [], + "account": "acoustic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 15, + "is_default": true, + "lineage": "/physic/acoustic/0-mcarrillo/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "mcarrillo" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 8, + "is_default": false, + "lineage": "/physic/optic/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "physic", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 17, + "is_default": true, + "lineage": "/physic/optic/0-rcarson/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "rcarson" + }, + { + "accounting": [], + "account": "optic", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 18, + "is_default": true, + "lineage": "/physic/optic/0-sevans/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "sevans" + }, + { + "accounting": [], + "account": "scientists", + "cluster": "hpc", + "comment": "", + "default": { + "qos": "" + }, + "flags": [], + "max": { + "jobs": { + "per": { + "count": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "submitted": { + "set": false, + "infinite": true, + "number": 0 + }, + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "active": { + "set": false, + "infinite": true, + "number": 0 + }, + "accruing": { + "set": false, + "infinite": true, + "number": 0 + }, + "total": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "tres": { + "total": [], + "group": { + "minutes": [], + "active": [] + }, + "minutes": { + "total": [], + "per": { + "job": [] + } + }, + "per": { + "job": [], + "node": [] + } + }, + "per": { + "account": { + "wall_clock": { + "set": false, + "infinite": true, + "number": 0 + } + } + } + }, + "id": 3, + "is_default": false, + "lineage": "/scientists/", + "min": { + "priority_threshold": { + "set": false, + "infinite": true, + "number": 0 + } + }, + "parent_account": "root", + "partition": "", + "priority": { + "set": false, + "infinite": true, + "number": 0 + }, + "qos": [ + "normal", + "study" + ], + "shares_raw": 1, + "user": "" + } + ], + "meta": { + "plugin": { + "type": "openapi/slurmdbd", + "name": "Slurm OpenAPI slurmdbd", + "data_parser": "data_parser/v0.0.44", + "accounting_storage": "accounting_storage/slurmdbd" + }, + "client": { + "source": "admin:6820(fd:48)", + "user": "nobody", + "group": "" + }, + "command": [], + "slurm": { + "version": { + "major": "25", + "micro": "0", + "minor": "11" + }, + "release": "25.11.0", + "cluster": "hpc" + } + }, + "errors": [], + "warnings": [] +} diff --git a/tests/assets/slurmrestd/25.11/0.0.44/status.json b/tests/assets/slurmrestd/25.11/0.0.44/status.json index 7eea19532..6edf375fc 100644 --- a/tests/assets/slurmrestd/25.11/0.0.44/status.json +++ b/tests/assets/slurmrestd/25.11/0.0.44/status.json @@ -175,6 +175,10 @@ "content-type": "application/json", "status": 200 }, + "slurmdb-associations": { + "content-type": "application/json", + "status": 200 + }, "slurmdb-job-archived": { "content-type": "application/json", "status": 200 From eb0b0b716740bae27715d147b9fd8062b662493d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Mon, 24 Nov 2025 19:02:57 +0100 Subject: [PATCH 11/30] tests(agent): cover associations endpoint --- slurmweb/tests/views/test_agent.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/slurmweb/tests/views/test_agent.py b/slurmweb/tests/views/test_agent.py index 51c6dc7ef..88f5918bb 100644 --- a/slurmweb/tests/views/test_agent.py +++ b/slurmweb/tests/views/test_agent.py @@ -571,6 +571,26 @@ def test_request_accounts(self, slurm_version, api_version): for idx in range(len(response.json)): self.assertEqual(response.json[idx]["name"], accounts_asset[idx]["name"]) + @all_slurm_api_versions + def test_request_associations(self, slurm_version, api_version): + self.setup_slurmrestd(slurm_version, api_version) + [associations_asset] = self.mock_slurmrestd_responses( + slurm_version, + api_version, + [("slurmdb-associations", "associations")], + ) + response = self.client.get(f"/v{get_version()}/associations") + self.assertEqual(response.status_code, 200) + self.assertIsInstance(response.json, list) + self.assertEqual(len(response.json), len(associations_asset)) + for idx in range(len(response.json)): + self.assertEqual( + response.json[idx]["account"], associations_asset[idx]["account"] + ) + self.assertEqual( + response.json[idx]["user"], associations_asset[idx]["user"] + ) + def test_cache_stats_disabled(self): with self.assertLogs("slurmweb", level="WARNING") as cm: response = self.client.get(f"/v{get_version()}/cache/stats") From 9fad570e2e311e132116f7ebb6df2f23f5184091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:33:58 +0100 Subject: [PATCH 12/30] feat(front): support requesting associations Support requesting accounts and users associations with their limits. --- CHANGELOG.md | 1 + frontend/src/composables/GatewayAPI.ts | 48 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e458b4ea7..aded2ba13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 on a job running on a node (#663). - Add support for running under a subfolder prefix on HTTP server. - Add catch-all route to report page not found with button to clusters. + - Support requesting accounts and users associations with their limits. - agent: - Automatically discover latest Slurm REST API version supported by `slurmrestd` among the list of Slurm-web supported versions declared in diff --git a/frontend/src/composables/GatewayAPI.ts b/frontend/src/composables/GatewayAPI.ts index eb7d90eda..4091d4d50 100644 --- a/frontend/src/composables/GatewayAPI.ts +++ b/frontend/src/composables/GatewayAPI.ts @@ -605,6 +605,48 @@ export interface ClusterQos { priority: ClusterOptionalNumber } +export interface ClusterAssociation { + account: string + max: { + jobs: { + accruing: ClusterOptionalNumber // MaxJobsAccrue + active: ClusterOptionalNumber // MaxJobs + per: { + accruing: ClusterOptionalNumber // GrpJobsAccrue + count: ClusterOptionalNumber // GrpJobs + submitted: ClusterOptionalNumber // GrpSubmit + wall_clock: ClusterOptionalNumber // MaxWall in minutes + } + total: ClusterOptionalNumber // MaxSubmit + } + per: { + account: { + wall_clock: ClusterOptionalNumber // GrpWall in minutes + } + } + tres: { + group: { + active: ClusterTRES[] // GrpTRESRunMins + minutes: ClusterTRES[] // GrpTRESMins + } + minutes: { + per: { + job: ClusterTRES[] // MaxTRESMins + } + total: ClusterTRES[] // ? + } + per: { + job: ClusterTRES[] // MaxTRES + node: ClusterTRES[] // MaxTRESPerNode + } + total: ClusterTRES[] // GrpTRES + } + } + parent_account: string + qos: string[] + user: string +} + export interface ClusterReservation { accounts: string end_time: ClusterOptionalNumber @@ -756,6 +798,7 @@ const GatewayClusterAPIKeys = [ 'qos', 'reservations', 'accounts', + 'associations', 'cache_stats' ] as const export type GatewayClusterAPIKey = (typeof GatewayClusterAPIKeys)[number] @@ -857,6 +900,10 @@ export function useGatewayAPI() { return await restAPI.get(`/agents/${cluster}/accounts`) } + async function associations(cluster: string): Promise> { + return await restAPI.get(`/agents/${cluster}/associations`) + } + async function cache_stats(cluster: string): Promise { return await restAPI.get(`/agents/${cluster}/cache/stats`) } @@ -997,6 +1044,7 @@ export function useGatewayAPI() { qos, reservations, accounts, + associations, cache_stats, cache_reset, metrics_nodes, From e715f187d6c693cfd33467dbfb297146cec5bbf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Wed, 19 Nov 2025 09:35:55 +0100 Subject: [PATCH 13/30] feat(front): introduce accounts page Add page to list account tree from Slurm accounting, with an entry to access this page in left menu. fix #262 --- CHANGELOG.md | 2 + frontend/src/components/MainMenu.vue | 9 +- .../components/accounts/AccountTreeNode.vue | 179 +++++++++++++++ frontend/src/composables/GatewayAPI.ts | 10 + frontend/src/router/index.ts | 7 + frontend/src/views/AccountsView.vue | 211 ++++++++++++++++++ 6 files changed, 417 insertions(+), 1 deletion(-) create mode 100644 frontend/src/components/accounts/AccountTreeNode.vue create mode 100644 frontend/src/views/AccountsView.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index aded2ba13..5374228d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add support for running under a subfolder prefix on HTTP server. - Add catch-all route to report page not found with button to clusters. - Support requesting accounts and users associations with their limits. + - Add page to list account tree from Slurm accounting (#262). + - Add entry in left menu to access accounts page. - agent: - Automatically discover latest Slurm REST API version supported by `slurmrestd` among the list of Slurm-web supported versions declared in diff --git a/frontend/src/components/MainMenu.vue b/frontend/src/components/MainMenu.vue index 2accc40fc..b2b32e7ee 100644 --- a/frontend/src/components/MainMenu.vue +++ b/frontend/src/components/MainMenu.vue @@ -16,7 +16,8 @@ import { PlayCircleIcon, CpuChipIcon, SwatchIcon, - XMarkIcon + XMarkIcon, + UserGroupIcon } from '@heroicons/vue/24/outline' import { TagIcon } from '@heroicons/vue/16/solid' @@ -41,6 +42,12 @@ const navigation = [ route: 'reservations', icon: CalendarIcon, permission: 'view-reservations' + }, + { + name: 'Accounts', + route: 'accounts', + icon: UserGroupIcon, + permission: 'associations-view' } ] diff --git a/frontend/src/components/accounts/AccountTreeNode.vue b/frontend/src/components/accounts/AccountTreeNode.vue new file mode 100644 index 000000000..5a6ee1bff --- /dev/null +++ b/frontend/src/components/accounts/AccountTreeNode.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/frontend/src/composables/GatewayAPI.ts b/frontend/src/composables/GatewayAPI.ts index 4091d4d50..c94cbca81 100644 --- a/frontend/src/composables/GatewayAPI.ts +++ b/frontend/src/composables/GatewayAPI.ts @@ -647,6 +647,16 @@ export interface ClusterAssociation { user: string } +export interface ClusterAccountTreeNode { + children: ClusterAccountTreeNode[] + level: number + account: string + max: ClusterAssociation['max'] + parent_account: string + qos: string[] + users: string[] +} + export interface ClusterReservation { accounts: string end_time: ClusterOptionalNumber diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 7f1db592f..4ecc95009 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -28,6 +28,7 @@ import ResourcesDiagramCoresView from '@/views/resources/ResourcesDiagramCoresVi import NodeView from '@/views/NodeView.vue' import QosView from '@/views/QosView.vue' import ReservationsView from '@/views/ReservationsView.vue' +import AccountsView from '@/views/AccountsView.vue' import JobsStatusBadges from '@/views/tests/JobsStatusBadges.vue' import NodesStatusBadges from '@/views/tests/NodesStatusBadges.vue' import NotFoundView from '@/views/NotFoundView.vue' @@ -158,6 +159,12 @@ const router = createRouter({ name: 'reservations', component: ReservationsView, props: true + }, + { + path: 'accounts', + name: 'accounts', + component: AccountsView, + props: true } ] }, diff --git a/frontend/src/views/AccountsView.vue b/frontend/src/views/AccountsView.vue new file mode 100644 index 000000000..a56a0ef76 --- /dev/null +++ b/frontend/src/views/AccountsView.vue @@ -0,0 +1,211 @@ + + + + + From 8e9e9cbac728d747f33ad5bb7bb19c010db147ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Mon, 24 Nov 2025 16:46:53 +0100 Subject: [PATCH 14/30] feat(front): account details page Add page to get details of a specific account with all its user associations. --- CHANGELOG.md | 2 + .../components/accounts/AccountTreeNode.vue | 66 +- frontend/src/router/index.ts | 7 + frontend/src/views/AccountView.vue | 619 ++++++++++++++++++ 4 files changed, 665 insertions(+), 29 deletions(-) create mode 100644 frontend/src/views/AccountView.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index 5374228d0..d0e07a5bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Support requesting accounts and users associations with their limits. - Add page to list account tree from Slurm accounting (#262). - Add entry in left menu to access accounts page. + - Add page to get details of a specific account with all its user + associations. - agent: - Automatically discover latest Slurm REST API version supported by `slurmrestd` among the list of Slurm-web supported versions declared in diff --git a/frontend/src/components/accounts/AccountTreeNode.vue b/frontend/src/components/accounts/AccountTreeNode.vue index 5a6ee1bff..28e47fb8d 100644 --- a/frontend/src/components/accounts/AccountTreeNode.vue +++ b/frontend/src/components/accounts/AccountTreeNode.vue @@ -87,11 +87,11 @@ function toggle() {
-
+
+
+ + + + From 47ab52819db2efb2f00348deaae05ca1234cde8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Palancher?= Date: Tue, 25 Nov 2025 11:41:27 +0100 Subject: [PATCH 15/30] refactor(front): move breadcrumb in component Move account breadcrumb from AccountView in a dedicated component so it can be reused in other views. --- .../components/accounts/AccountBreadcrumb.vue | 63 +++++++++++++++++++ frontend/src/views/AccountView.vue | 53 +++------------- 2 files changed, 70 insertions(+), 46 deletions(-) create mode 100644 frontend/src/components/accounts/AccountBreadcrumb.vue diff --git a/frontend/src/components/accounts/AccountBreadcrumb.vue b/frontend/src/components/accounts/AccountBreadcrumb.vue new file mode 100644 index 000000000..8afdbe840 --- /dev/null +++ b/frontend/src/components/accounts/AccountBreadcrumb.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/frontend/src/views/AccountView.vue b/frontend/src/views/AccountView.vue index ed5fb0679..eda74c915 100644 --- a/frontend/src/views/AccountView.vue +++ b/frontend/src/views/AccountView.vue @@ -9,11 +9,12 @@