13868: Fallback behavior when arvados_node_size tag is missing
[arvados.git] / services / nodemanager / arvnodeman / computenode / driver / ec2.py
index ae2eb858cf8befa62c0cd5ce732e1d632cd73d3c..418a9f9d85499b64e592d614cfa793af70e694ca 100644 (file)
@@ -91,7 +91,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
                     "VolumeSize": volsize,
                     "VolumeType": "gp2"
                 }}]
-        if size.preemptable:
+        if size.preemptible:
             # Request a Spot instance for this node
             kw['ex_spot_market'] = True
         return kw
@@ -102,7 +102,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
 
     def create_node(self, size, arvados_node):
         # Set up tag indicating the Arvados assigned Cloud Size id.
-        self.create_kwargs['ex_metadata'].update({'arvados-node-size-id': size.id})
+        self.create_kwargs['ex_metadata'].update({'arvados_node_size': size.id})
         return super(ComputeNodeDriver, self).create_node(size, arvados_node)
 
     def list_nodes(self):
@@ -110,7 +110,8 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         nodes = super(ComputeNodeDriver, self).list_nodes()
         for n in nodes:
             if not n.size:
-                n.size = self.sizes[n.extra["instance_type"]]
+                n.size = self.sizes()[n.extra["instance_type"]]
+            n.extra['arvados_node_size'] = n.extra.get('tags', {}).get('arvados_node_size') or n.size.id
         return nodes
 
     @classmethod