X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9e5b98e8f5f4727856b53447191f9c06e3da2ba6..9b0654adfffaac018395de29f6e441b843d46e85:/services/nodemanager/arvnodeman/computenode/driver/gce.py diff --git a/services/nodemanager/arvnodeman/computenode/driver/gce.py b/services/nodemanager/arvnodeman/computenode/driver/gce.py index bbabdd4c76..1c6d214fe8 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/gce.py +++ b/services/nodemanager/arvnodeman/computenode/driver/gce.py @@ -31,6 +31,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver): create_kwargs = create_kwargs.copy() create_kwargs.setdefault('external_ip', None) create_kwargs.setdefault('ex_metadata', {}) + self._project = auth_kwargs.get("project") super(ComputeNodeDriver, self).__init__( auth_kwargs, list_kwargs, create_kwargs, driver_class) @@ -44,7 +45,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver): def _init_image(self, image_name): return 'image', self.search_for( - image_name, 'list_images', self._name_key) + image_name, 'list_images', self._name_key, ex_project=self._project) def _init_network(self, network_name): return 'ex_network', self.search_for( @@ -60,9 +61,12 @@ class ComputeNodeDriver(BaseComputeNodeDriver): self.create_kwargs['ex_metadata']['sshKeys'] = ( 'root:' + ssh_file.read().strip()) + def create_cloud_name(self, arvados_node): + uuid_parts = arvados_node['uuid'].split('-', 2) + return 'compute-{parts[2]}-{parts[0]}'.format(parts=uuid_parts) + def arvados_create_kwargs(self, size, arvados_node): - cluster_id, _, node_id = arvados_node['uuid'].split('-') - name = 'compute-{}-{}'.format(node_id, cluster_id) + name = self.create_cloud_name(arvados_node) disks = [ {'autoDelete': True, 'boot': True, @@ -163,3 +167,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver): node.extra['metadata']['items'], 'booted_at')) except KeyError: return 0 + + @classmethod + def node_id(cls, node): + return node.id