8953: Drained SLURM nodes can be eligible for shutdown.
[arvados.git] / services / nodemanager / arvnodeman / computenode / dispatch / slurm.py
index 41919db07e12efe7a262c4635e9a8432febdec2f..6d979b6c5cbd08c3c6db27ffda4895e14234c11b 100644 (file)
@@ -76,11 +76,9 @@ class ComputeNodeMonitorActor(SlurmMixin, MonitorActorBase):
             state = self._get_slurm_state(self.arvados_node['hostname'])
             # Automatically eligible for shutdown if it's down or failed, but
             # not drain to avoid a race condition with resume_node().
-            if state in self.SLURM_END_STATES:
-                if state in self.SLURM_DRAIN_STATES:
-                    return "node is draining"
-                else:
-                    return True
+            if ((state in self.SLURM_END_STATES) and
+                  (state not in self.SLURM_DRAIN_STATES)):
+                return True
         return super(ComputeNodeMonitorActor, self).shutdown_eligible()
 
     def resume_node(self):