7478: Set arvados-node-size-id tag on node creation.
authorLucas Di Pentima <ldipentima@veritasgenetics.com>
Wed, 30 May 2018 21:02:30 +0000 (18:02 -0300)
committerLucas Di Pentima <ldipentima@veritasgenetics.com>
Wed, 30 May 2018 21:02:30 +0000 (18:02 -0300)
This tag has the Arvados assigned node size id, not the cloud size.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

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

index e0f260ab86542252102e28459381505833998d10..32f6b6c3907de151cb58d448cc98535dddc82e1c 100644 (file)
@@ -78,6 +78,12 @@ echo %s > /var/tmp/arv-node-data/meta-data/instance-type
     def _init_image(self, urn):
         return "image", self.get_image(urn)
 
+    def create_node(self, size, arvados_node):
+        # Set up tag indicating the Arvados assigned Cloud Size id.
+        self.create_kwargs.setdefault('ex_tags', {})
+        self.create_kwargs['ex_tags'].update({'arvados-node-size-id': size.id})
+        return super(ComputeNodeDriver, self).create_node(size, arvados_node)
+
     def list_nodes(self):
         # Azure only supports filtering node lists by resource group.
         # Do our own filtering based on tag.
index 1442a1245b2fa795fec159985fc3332c70116196..ae2eb858cf8befa62c0cd5ce732e1d632cd73d3c 100644 (file)
@@ -100,6 +100,11 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         self.real.ex_create_tags(cloud_node,
                                  {'Name': arvados_node_fqdn(arvados_node)})
 
+    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})
+        return super(ComputeNodeDriver, self).create_node(size, arvados_node)
+
     def list_nodes(self):
         # Need to populate Node.size
         nodes = super(ComputeNodeDriver, self).list_nodes()
index 3f1d575361a461f322e6475fab28b059d973e193..8ab991bea4e2f9310573d5081d029930dbc4b4aa 100644 (file)
@@ -109,6 +109,11 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         return result
 
 
+    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})
+        return super(ComputeNodeDriver, self).create_node(size, arvados_node)
+
     def list_nodes(self):
         # The GCE libcloud driver only supports filtering node lists by zone.
         # Do our own filtering based on tag list.