diff --git a/CHANGELOG b/CHANGELOG index 7161a6d..f009256 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 f366867..e1d60f3 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 5be9cf4..ec46891 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 fa19780..0d7c1eb 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 26f854c..5553a48 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 fd2ddc5..08b49f8 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 fd2ddc5..08b49f8 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