X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0662b235357dd40b5d27efd06b60044ddcec06f6..149957a7a86cd9fae98edfdc9c797d16656b3684:/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 e461ed5b67..b853f00a67 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/gce.py +++ b/services/nodemanager/arvnodeman/computenode/driver/gce.py @@ -38,10 +38,6 @@ class ComputeNodeDriver(BaseComputeNodeDriver): self._disktype_links = {dt.name: self._object_link(dt) for dt in self.real.ex_list_disktypes()} - @staticmethod - def _name_key(cloud_object): - return cloud_object.name - @staticmethod def _object_link(cloud_object): return cloud_object.extra.get('selfLink') @@ -64,9 +60,12 @@ class ComputeNodeDriver(BaseComputeNodeDriver): self.create_kwargs['ex_metadata']['sshKeys'] = ( 'root:' + ssh_file.read().strip()) - def arvados_create_kwargs(self, arvados_node): - cluster_id, _, node_id = arvados_node['uuid'].split('-') - name = 'compute-{}-{}'.format(node_id, cluster_id) + 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): + name = self.create_cloud_name(arvados_node) disks = [ {'autoDelete': True, 'boot': True, @@ -101,6 +100,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver): }) return result + def list_nodes(self): # The GCE libcloud driver only supports filtering node lists by zone. # Do our own filtering based on tag list. @@ -166,3 +166,7 @@ class ComputeNodeDriver(BaseComputeNodeDriver): node.extra['metadata']['items'], 'booted_at')) except KeyError: return 0 + + @classmethod + def node_id(cls, node): + return node.id