12055: On EC2 driver, pass the tag list to the node_create call
[arvados.git] / services / nodemanager / arvnodeman / computenode / driver / ec2.py
index d6b877c27cdef137b469b7a06027712c3ac8986c..846aa6c2118b9455ad078dc19532d27eb970768c 100644 (file)
@@ -1,4 +1,7 @@
 #!/usr/bin/env python
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
 
 from __future__ import absolute_import, print_function
 
@@ -49,6 +52,10 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
         self.tags = {key[4:]: value
                      for key, value in list_kwargs.iteritems()
                      if key.startswith('tag:')}
+        # Tags are assigned at instance creation time
+        if not 'ex_metadata' in create_kwargs:
+            create_kwargs['ex_metadata'] = {}
+        create_kwargs['ex_metadata'].update(self.tags)
         super(ComputeNodeDriver, self).__init__(
             auth_kwargs, {'ex_filters': list_kwargs}, create_kwargs,
             driver_class)
@@ -87,9 +94,6 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
                 }}]
         return kw
 
-    def post_create_node(self, cloud_node):
-        self.real.ex_create_tags(cloud_node, self.tags)
-
     def sync_node(self, cloud_node, arvados_node):
         self.real.ex_create_tags(cloud_node,
                                  {'Name': arvados_node_fqdn(arvados_node)})