4138: GCE fixes
[arvados.git] / services / nodemanager / arvnodeman / computenode / driver / gce.py
index a4fd57deeee7c6a7c736a2b7246e2167321f2d86..a8edc432fdc068f6d4dff5d4799102b975556205 100644 (file)
@@ -37,8 +37,11 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
                 if new_pair is not None:
                     self.create_kwargs[new_pair[0]] = new_pair[1]
 
-    def _init_image_id(self, image_id):
-        return 'image', self.search_for(image_id, 'list_images')
+    def _init_image(self, image_name):
+        return 'image', image_name
+
+    def _init_location(self, location):
+        return 'location', location
 
     def _init_ping_host(self, ping_host):
         self.ping_host = ping_host
@@ -46,9 +49,6 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
     def _init_service_accounts(self, service_accounts_str):
         self.service_accounts = json.loads(service_accounts_str)
 
-    def _init_network_id(self, subnet_id):
-        return 'ex_network', self.search_for(subnet_id, 'ex_list_networks')
-
     def _init_ssh_key(self, filename):
         with open(filename) as ssh_file:
             self.ssh_key = ssh_file.read().strip()
@@ -60,7 +60,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
             ping_url = ('https://{}/arvados/v1/nodes/{}/ping?ping_secret={}'.
                         format(self.ping_host, arvados_node['uuid'],
                                ping_secret))
-            result['ex_userdata'] = ping_url
+            result['ex_metadata']['pingUrl'] = ping_url
         if self.service_accounts is not None:
             result['ex_service_accounts'] = self.service_accounts
 
@@ -70,6 +70,13 @@ class ComputeNodeDriver(BaseComputeNodeDriver):
             result['ex_metadata']['sshKeys'] = 'root:{}'.format(self.ssh_key)
         return result
 
+    def create_node(self, size, arvados_node):
+        kwargs = self.create_kwargs.copy()
+        kwargs.update(self.arvados_create_kwargs(arvados_node))
+        kwargs.setdefault('name', 'arv-{}'.format(arvados_node['uuid']))
+        kwargs['size'] = size
+        return self.real.create_node(**kwargs)
+
     # When an Arvados node is synced with a GCE node, the Arvados hostname
     # is forwarded in a GCE tag 'hostname-foo'.
     # TODO(twp): implement an ex_set_metadata method (at least until