7286: Add test that "missing" nodes are not counted towards "busy" (but are
authorPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 30 Sep 2015 14:35:04 +0000 (10:35 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 30 Sep 2015 14:35:15 +0000 (10:35 -0400)
counted towards node max).

services/nodemanager/arvnodeman/computenode/dispatch/__init__.py
services/nodemanager/tests/test_daemon.py

index 70e6e8e8697791c5a3fce8327e0e325184db10c1..455719832d7da5357273d4c23574f8a02b6fe237 100644 (file)
@@ -323,9 +323,6 @@ class ComputeNodeMonitorActor(config.actor_class):
         return result
 
     def shutdown_eligible(self):
-        import logging
-        logging.warn("XXX %s %s", self.arvados_node, self._cloud.broken(self.cloud_node))
-
         if not self._shutdowns.window_open():
             return False
         elif self.arvados_node is None:
index b406f1357671f0efe85813004ff2ddb0629584a1..8c622ec0106a46e51dbe8aa4b183315b65e8dad4 100644 (file)
@@ -123,7 +123,28 @@ class NodeManagerDaemonActorTestCase(testutil.ActorTestMixin,
         self.make_daemon([testutil.cloud_node_mock()],
                          want_sizes=[testutil.MockSize(1)])
         self.stop_proxy(self.daemon)
-        self.assertFalse(self.node_setup.called)
+        self.assertFalse(self.node_setup.start.called)
+
+    def test_dont_count_missing_as_busy(self):
+        size = testutil.MockSize(1)
+        self.make_daemon(cloud_nodes=[testutil.cloud_node_mock(1),
+                                      testutil.cloud_node_mock(2)],
+                         arvados_nodes=[testutil.arvados_node_mock(1),
+                                      testutil.arvados_node_mock(2, status="missing")],
+                         want_sizes=[size, size])
+        self.stop_proxy(self.daemon)
+        self.assertTrue(self.node_setup.start.called)
+
+    def test_missing_counts_towards_max(self):
+        size = testutil.MockSize(1)
+        self.make_daemon(cloud_nodes=[testutil.cloud_node_mock(1),
+                                      testutil.cloud_node_mock(2)],
+                         arvados_nodes=[testutil.arvados_node_mock(1),
+                                        testutil.arvados_node_mock(2, status="missing")],
+                         want_sizes=[size, size],
+                         max_nodes=2)
+        self.stop_proxy(self.daemon)
+        self.assertFalse(self.node_setup.start.called)
 
     def test_booting_nodes_counted(self):
         cloud_node = testutil.cloud_node_mock(1)