13868: Fallback behavior when arvados_node_size tag is missing
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 19 Jul 2018 15:12:05 +0000 (11:12 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Thu, 19 Jul 2018 15:12:05 +0000 (11:12 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

services/nodemanager/arvnodeman/computenode/driver/azure.py
services/nodemanager/arvnodeman/computenode/driver/ec2.py
services/nodemanager/arvnodeman/computenode/driver/gce.py
services/nodemanager/arvnodeman/jobqueue.py

index 719124d4000f724a271077d9f1614c50c6788f8d..35c8b5a8c97db40b4d15a7ad20e20acaefdc605a 100644 (file)
@@ -90,7 +90,7 @@ echo %s > /var/tmp/arv-node-data/meta-data/instance-type
             # Need to populate Node.size
             if not n.size:
                 n.size = self.sizes()[n.extra["properties"]["hardwareProfile"]["vmSize"]]
-            n.extra['arvados_node_size'] = n.extra.get('tags', {}).get('arvados_node_size')
+            n.extra['arvados_node_size'] = n.extra.get('tags', {}).get('arvados_node_size') or n.size.id
         return nodes
 
     def broken(self, cloud_node):
index 56812d258a92212b02a53d9775534d8b23b50b69..418a9f9d85499b64e592d614cfa793af70e694ca 100644 (file)
@@ -111,7 +111,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         for n in nodes:
             if not n.size:
                 n.size = self.sizes()[n.extra["instance_type"]]
-            n.extra['arvados_node_size'] = n.extra.get('tags', {}).get('arvados_node_size')
+            n.extra['arvados_node_size'] = n.extra.get('tags', {}).get('arvados_node_size') or n.size.id
         return nodes
 
     @classmethod
index 11025f7840bc00fe6c188ad6b0f9e9bea1795cba..23a1017316656cfe4323646ac9bba5e793f915cb 100644 (file)
@@ -121,7 +121,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
             if not hasattr(node.size, 'id'):
                 node.size = self.sizes()[node.size]
             # Get arvados-assigned cloud size id
-            node.extra['arvados_node_size'] = node.extra.get('metadata', {}).get('arvados_node_size')
+            node.extra['arvados_node_size'] = node.extra.get('metadata', {}).get('arvados_node_size') or node.size.id
         return nodelist
 
     @classmethod
index 1020b4a80ced597911b886c40789dea39f1d5598..7ca9c9553721f0fa1291273bfeff5f5f9f7d0e78 100644 (file)
@@ -37,7 +37,10 @@ class ServerCalculator(object):
             self.scratch = 0
             self.cores = 0
             self.bandwidth = 0
-            self.price = 9999999
+            # price is multiplied by 1000 to get the node weight
+            # the maximum node weight is                  4294967280
+            # so use invalid node weight 4294967 * 1000 = 4294967000
+            self.price = 4294967
             self.preemptible = False
             self.extra = {}