From c0c3ab57dabdb1490959712f95d144b630956138 Mon Sep 17 00:00:00 2001 From: Jaime Freire de Souza Date: Wed, 26 Jun 2024 20:21:50 -0300 Subject: [PATCH] Add actions to set weight and gres (#185) --- CHANGELOG | 3 ++- charm-slurmctld/requirements.txt | 2 +- charm-slurmd/actions.yaml | 13 ++++++++++++- charm-slurmd/requirements.txt | 2 +- charm-slurmd/src/charm.py | 28 ++++++++++++++++++++++++++++ charm-slurmdbd/requirements.txt | 2 +- charm-slurmrestd/requirements.txt | 2 +- 7 files changed, 46 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7161a6da..f009256b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,7 +6,8 @@ This file keeps track of all notable changes to the Slurm Charms. Unreleased ---------- -- updated slurm-ops-manager to version 0.8.17 +- added actions to set node weight and gres +- updated slurm-ops-manager to version 0.8.18 1.1.3 - 2023-12-11 diff --git a/charm-slurmctld/requirements.txt b/charm-slurmctld/requirements.txt index f366867a..e1d60f30 100644 --- a/charm-slurmctld/requirements.txt +++ b/charm-slurmctld/requirements.txt @@ -3,4 +3,4 @@ influxdb==5.3.1 urllib3==1.26.9 etcd3gw==1.0.2 jinja2==3.1.2 -git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.17 +git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.18 diff --git a/charm-slurmd/actions.yaml b/charm-slurmd/actions.yaml index 5be9cf4b..ec468913 100644 --- a/charm-slurmd/actions.yaml +++ b/charm-slurmd/actions.yaml @@ -10,6 +10,17 @@ set-node-inventory: real-memory: type: integer description: Total amount of memory of the node, in MB. - +set-node-weight: + description: Modify node weight. + params: + value: + type: integer + description: Node weight. +set-node-gres: + description: Modify node GRES. + params: + value: + type: string + description: GRES setup. show-nhc-config: description: Display the currently used `nhc.conf`. diff --git a/charm-slurmd/requirements.txt b/charm-slurmd/requirements.txt index fa19780e..0d7c1ebc 100644 --- a/charm-slurmd/requirements.txt +++ b/charm-slurmd/requirements.txt @@ -1,4 +1,4 @@ ops==1.3.0 urllib3==1.26.9 etcd3gw==1.0.2 -git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.17 +git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.18 diff --git a/charm-slurmd/src/charm.py b/charm-slurmd/src/charm.py index 26f854c0..5553a486 100755 --- a/charm-slurmd/src/charm.py +++ b/charm-slurmd/src/charm.py @@ -87,6 +87,8 @@ def __init__(self, *args): self.on.node_configured_action: self._on_node_configured_action, self.on.get_node_inventory_action: self._on_get_node_inventory_action, self.on.set_node_inventory_action: self._on_set_node_inventory_action, + self.on.set_node_weight_action: self._on_set_node_weight_action, + self.on.set_node_gres_action: self._on_set_node_gres_action, self.on.show_nhc_config_action: self._on_show_nhc_config, } for event, handler in event_handler_bindings.items(): @@ -422,6 +424,32 @@ def _on_set_node_inventory_action(self, event): event.set_results({"real-memory": memory}) + def _on_set_node_weight_action(self, event): + """Overwrite the node inventory.""" + inventory = self._slurmd.node_inventory + + # update local copy of inventory + weight = event.params.get("value") + inventory["weight"] = weight + + # send it to slurmctld + self._slurmd.node_inventory = inventory + + event.set_results({"weight": weight}) + + def _on_set_node_gres_action(self, event): + """Overwrite the node inventory.""" + inventory = self._slurmd.node_inventory + + # update local copy of inventory + gres = event.params.get("value") + inventory["gres"] = gres + + # send it to slurmctld + self._slurmd.node_inventory = inventory + + event.set_results({"gres": gres}) + def _on_show_nhc_config(self, event): """Show current nhc.conf.""" nhc_conf = self._slurm_manager.get_nhc_config() diff --git a/charm-slurmdbd/requirements.txt b/charm-slurmdbd/requirements.txt index fd2ddc53..08b49f8a 100644 --- a/charm-slurmdbd/requirements.txt +++ b/charm-slurmdbd/requirements.txt @@ -1,2 +1,2 @@ ops==1.3.0 -git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.17 +git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.18 diff --git a/charm-slurmrestd/requirements.txt b/charm-slurmrestd/requirements.txt index fd2ddc53..08b49f8a 100644 --- a/charm-slurmrestd/requirements.txt +++ b/charm-slurmrestd/requirements.txt @@ -1,2 +1,2 @@ ops==1.3.0 -git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.17 +git+https://github.com/omnivector-solutions/slurm-ops-manager.git@0.8.18