From 425f9a753e4390215b95b794785efd38bbc5f42d Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Thu, 16 Feb 2017 15:10:34 -0500 Subject: [PATCH] 6520: Explicitly mark node as 'down' before shutting down. --- .../nodemanager/arvnodeman/computenode/dispatch/__init__.py | 2 ++ .../nodemanager/arvnodeman/computenode/dispatch/slurm.py | 6 ++++++ .../nodemanager/tests/test_computenode_dispatch_slurm.py | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py b/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py index 7a94daea98..fc3ff05777 100644 --- a/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py +++ b/services/nodemanager/arvnodeman/computenode/dispatch/__init__.py @@ -229,7 +229,9 @@ class ComputeNodeShutdownActor(ComputeNodeStateChangeBase): self.cancel_shutdown("No longer eligible for shut down because %s" % reason, try_resume=True) return + self._destroy_node() + def _destroy_node(self): self._logger.info("Starting shutdown") arv_node = self._arvados_node() if self._cloud.destroy_node(self.cloud_node): diff --git a/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py b/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py index cc344e5162..be24e0fba0 100644 --- a/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py +++ b/services/nodemanager/arvnodeman/computenode/dispatch/slurm.py @@ -77,6 +77,12 @@ class ComputeNodeShutdownActor(SlurmMixin, ShutdownActorBase): # any other state. self._later.shutdown_node() + def _destroy_node(self): + if self._nodename: + self._set_node_state(self._nodename, 'DOWN') + super(ComputeNodeShutdownActor, self)._destroy_node() + + class ComputeNodeUpdateActor(UpdateActorBase): def sync_node(self, cloud_node, arvados_node): if arvados_node.get("hostname"): diff --git a/services/nodemanager/tests/test_computenode_dispatch_slurm.py b/services/nodemanager/tests/test_computenode_dispatch_slurm.py index 38fe1d799f..e1def28d8b 100644 --- a/services/nodemanager/tests/test_computenode_dispatch_slurm.py +++ b/services/nodemanager/tests/test_computenode_dispatch_slurm.py @@ -33,7 +33,7 @@ class SLURMComputeNodeShutdownActorTestCase(ComputeNodeShutdownActorMixin, proc_mock.return_value = end_state proc_mock.side_effect = None self.check_success_flag(True, 3) - self.check_slurm_got_args(proc_mock, 'compute63') + self.check_slurm_got_args(proc_mock, 'NodeName=compute63') def make_wait_state_test(start_state='drng\n', end_state='drain\n'): def test(self, proc_mock): -- 2.30.2