Enable BaseComputeNodeDriver.list_nodes to pass through keyword arguments.
authorPeter Amstutz <peter.amstutz@curoverse.com>
Sat, 19 Mar 2016 20:00:11 +0000 (16:00 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Sat, 19 Mar 2016 20:00:11 +0000 (16:00 -0400)
closes #8761

services/nodemanager/arvnodeman/computenode/driver/__init__.py
services/nodemanager/tests/test_computenode_driver_azure.py

index d72c86dc0afacc05c271c4beaa6b32a46c000c70..0576999ea6fe7308ccfd66b6b05b2eb776845e4c 100644 (file)
@@ -104,8 +104,10 @@ class BaseComputeNodeDriver(RetryMixin):
             self.SEARCH_CACHE[cache_key] = results[0]
         return self.SEARCH_CACHE[cache_key]
 
-    def list_nodes(self):
-        return self.real.list_nodes(**self.list_kwargs)
+    def list_nodes(self, **kwargs):
+        l = self.list_kwargs.copy()
+        l.update(kwargs)
+        return self.real.list_nodes(**l)
 
     def arvados_create_kwargs(self, size, arvados_node):
         """Return dynamic keyword arguments for create_node.
index 5721abc5f87efeaf029c2eb476bb0fcdf6a14f2a..8e701b971352f8630030f8e817c22b337eb4a26e 100644 (file)
@@ -110,3 +110,13 @@ echo z1.test > /var/tmp/arv-node-data/meta-data/instance-type
         self.driver_mock().create_node.side_effect = IOError
         n = driver.create_node(testutil.MockSize(1), arv_node)
         self.assertEqual('compute-000000000000001-zzzzz', n.name)
+
+    def test_ex_fetch_nic_false(self):
+        arv_node = testutil.arvados_node_mock(1, hostname=None)
+        driver = self.new_driver(create_kwargs={"tag_arvados-class": "dynamic-compute"})
+        nodelist = [testutil.cloud_node_mock(1, tags={"arvados-class": "dynamic-compute"})]
+        nodelist[0].name = 'compute-000000000000001-zzzzz'
+        self.driver_mock().list_nodes.return_value = nodelist
+        n = driver.list_nodes()
+        self.assertEqual(nodelist, n)
+        self.driver_mock().list_nodes.assert_called_with(ex_fetch_nic=False, ex_resource_group='TestResourceGroup')