13804: Fix tests
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Tue, 17 Jul 2018 18:47:01 +0000 (14:47 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Tue, 17 Jul 2018 18:47:01 +0000 (14:47 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

services/nodemanager/arvnodeman/config.py
services/nodemanager/arvnodeman/daemon.py
services/nodemanager/arvnodeman/launcher.py
services/nodemanager/tests/test_daemon.py

index 8d974872f2b73203ed6403f30fa1eca411736456..617b5626b335cccb92334363acb52ec1a694386e 100644 (file)
@@ -57,7 +57,7 @@ class NodeManagerConfig(ConfigParser.SafeConfigParser):
                        'node_stale_after': str(60 * 60 * 2),
                        'watchdog': '600',
                        'node_mem_scaling': '0.95',
-                       'consecutive_idle_count': 2},
+                       'consecutive_idle_count': '2'},
             'Manage': {'address': '127.0.0.1',
                        'port': '-1',
                        'ManagementToken': ''},
index f34260adb9d5f689b2ca3c24f8333221dd04fc22..8ca75a270171a650f34aa2854ba59fd61b63d486 100644 (file)
@@ -478,7 +478,7 @@ class NodeManagerDaemonActor(actor_class):
         for record in self.cloud_nodes.nodes.itervalues():
             try:
                 if (record.shutdown_actor is not None and
-                    record.size.id == size.id and
+                    record.cloud_node.size.id == size.id and
                     record.shutdown_actor.cancel_shutdown("Node size is in wishlist").get(2)):
                         return True
             except (pykka.ActorDeadError, pykka.Timeout) as e:
index 888abf5a768d51cb34fe85b30ed9d1252b7dea4c..4fe4128ab1569d0ac6781439cec602615f326d4f 100644 (file)
@@ -144,7 +144,8 @@ def main(args=None):
             config.getint('Daemon', 'boot_fail_after'),
             config.getint('Daemon', 'node_stale_after'),
             node_setup, node_shutdown, node_monitor,
-            max_total_price=config.getfloat('Daemon', 'max_total_price')).tell_proxy()
+            max_total_price=config.getfloat('Daemon', 'max_total_price'),
+            consecutive_idle_count=config.getint('Daemon', 'consecutive_idle_count'),).tell_proxy()
 
         watchdog = WatchdogActor.start(config.getint('Daemon', 'watchdog'),
                             cloud_node_poller.actor_ref,
index 8050e6981411d69f127617e0cb2b44681470341d..562ed6dfe9a93327a6835f650f5d18eb05bc1e9a 100644 (file)
@@ -608,10 +608,26 @@ class NodeManagerDaemonActorTestCase(testutil.ActorTestMixin,
         monitor = self.monitor_list()[0].proxy()
         self.daemon.node_can_shutdown(monitor).get(self.TIMEOUT)
         self.assertTrue(self.node_shutdown.start.called)
+        getmock = mock.MagicMock()
+        getmock.get.return_value = False
+        self.last_shutdown.cancel_shutdown.return_value = getmock
         self.daemon.update_server_wishlist(
             [testutil.MockSize(6)]).get(self.TIMEOUT)
         self.busywait(lambda: self.node_setup.start.called)
 
+    def test_nodes_shutting_down_cancelled(self):
+        size = testutil.MockSize(6)
+        cloud_node = testutil.cloud_node_mock(6, size=size)
+        self.make_daemon([cloud_node], [testutil.arvados_node_mock(6, crunch_worker_state='down')],
+                         avail_sizes=[(size, {"cores":1})])
+        self.assertEqual(1, self.alive_monitor_count())
+        monitor = self.monitor_list()[0].proxy()
+        self.daemon.node_can_shutdown(monitor).get(self.TIMEOUT)
+        self.assertTrue(self.node_shutdown.start.called)
+        self.daemon.update_server_wishlist(
+            [testutil.MockSize(6)]).get(self.TIMEOUT)
+        self.busywait(lambda: self.last_shutdown.cancel_shutdown.called)
+
     def test_nodes_shutting_down_not_replaced_at_max_nodes(self):
         cloud_node = testutil.cloud_node_mock(7)
         self.make_daemon([cloud_node], [testutil.arvados_node_mock(7)],