12199: Fix errant uses of size.name that should be size.id.
authorTom Clegg <tclegg@veritasgenetics.com>
Mon, 12 Feb 2018 21:48:15 +0000 (16:48 -0500)
committerTom Clegg <tclegg@veritasgenetics.com>
Mon, 12 Feb 2018 22:02:33 +0000 (17:02 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/nodemanager/arvnodeman/computenode/dispatch/slurm.py
services/nodemanager/arvnodeman/computenode/driver/gce.py
services/nodemanager/arvnodeman/jobqueue.py
services/nodemanager/tests/test_computenode_driver_gce.py
services/nodemanager/tests/testutil.py

index e948c5106c8e794554d840654b0451219e4ff849..1cf8f4e41d776e5861c41816aff34cf2d98604db 100644 (file)
@@ -31,7 +31,7 @@ class SlurmMixin(object):
     def _update_slurm_size_attrs(self, nodename, size):
         self._update_slurm_node(nodename, [
             'Weight=%i' % int(size.price * 1000),
-            'Features=instancetype=' + size.name,
+            'Features=instancetype=' + size.id,
         ])
 
     def _get_slurm_state(self, nodename):
@@ -109,7 +109,7 @@ class ComputeNodeUpdateActor(SlurmMixin, UpdateActorBase):
         """Keep SLURM's node properties up to date."""
         hostname = arvados_node.get("hostname")
         features = arvados_node.get("slurm_node_features", "").split(",")
-        sizefeature = "instancetype=" + cloud_node.size.name
+        sizefeature = "instancetype=" + cloud_node.size.id
         if hostname and sizefeature not in features:
             # This probably means SLURM has restarted and lost our
             # dynamically configured node weights and features.
index 419557fe288ded9c4c4706bcd47a58b035ce2e65..3f1d575361a461f322e6475fab28b059d973e193 100644 (file)
@@ -38,7 +38,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         super(ComputeNodeDriver, self).__init__(
             auth_kwargs, list_kwargs, create_kwargs,
             driver_class)
-        self._sizes_by_name = {sz.name: sz for sz in self.sizes.itervalues()}
+        self._sizes_by_id = {sz.id: sz for sz in self.sizes.itervalues()}
         self._disktype_links = {dt.name: self._object_link(dt)
                                 for dt in self.real.ex_list_disktypes()}
 
@@ -120,7 +120,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         # and monkeypatch the results when that's the case.
         if nodelist and not hasattr(nodelist[0].size, 'id'):
             for node in nodelist:
-                node.size = self._sizes_by_name[node.size]
+                node.size = self._sizes_by_id[node.size]
         return nodelist
 
     @classmethod
index ebc90e415abc52aa6633412c9acc548dd103ba64..0360bfc5424913c2f85bafc52d2ceaf29bd41296 100644 (file)
@@ -75,14 +75,14 @@ class ServerCalculator(object):
             return fallback
 
     def cloud_size_for_constraints(self, constraints):
-        specified_name = constraints.get('instance_type')
+        specified_size = constraints.get('instance_type')
         want_value = lambda key: self.coerce_int(constraints.get(key), 0)
         wants = {'cores': want_value('min_cores_per_node'),
                  'ram': want_value('min_ram_mb_per_node'),
                  'scratch': want_value('min_scratch_mb_per_node')}
         for size in self.cloud_sizes:
             if (size.meets_constraints(**wants) and
-                (specified_name is None or size.name == specified_name)):
+                (specified_size is None or size.id == specified_size)):
                     return size
         return None
 
index cfc4add63b20992b452fbc59ecb02c02e8ebdaf5..f0942e93785571f8ae4e3cdb7f0c78eb173ee7b6 100644 (file)
@@ -211,7 +211,7 @@ class GCEComputeNodeDriverTestCase(testutil.DriverTestMixin, unittest.TestCase):
         # patches that up in listings.
         size = testutil.MockSize(2)
         node = testutil.cloud_node_mock(size=size)
-        node.size = size.name
+        node.size = size.id
         self.driver_mock().list_sizes.return_value = [size]
         self.driver_mock().list_nodes.return_value = [node]
         driver = self.new_driver()
index d13475b410ffc39ef4bad15561051eb6a546c75c..555144c4d05d2bc562d9bc2357fa93421f64b35f 100644 (file)
@@ -80,7 +80,7 @@ class MockShutdownTimer(object):
 class MockSize(object):
     def __init__(self, factor):
         self.id = 'z{}.test'.format(factor)
-        self.name = self.id
+        self.name = 'test size '+self.id
         self.ram = 128 * factor
         self.disk = factor   # GB
         self.scratch = 1000 * factor # MB