X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8e31910034627dedd7259dd1e45a60768108c1e1..5c4d9d38dcee73a7ffb6221c80f707c3924da64f:/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 f8d81cab04..be39ecba6b 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/gce.py +++ b/services/nodemanager/arvnodeman/computenode/driver/gce.py @@ -102,31 +102,27 @@ class ComputeNodeDriver(BaseComputeNodeDriver): 'ex_disks_gce_struct': disks, } result['ex_metadata'].update({ - 'arv-ping-url': self._make_ping_url(arvados_node), - 'booted_at': time.strftime(ARVADOS_TIMEFMT, time.gmtime()), - 'hostname': arvados_node_fqdn(arvados_node), - }) + 'arvados_node_size': size.id, + 'arv-ping-url': self._make_ping_url(arvados_node), + 'booted_at': time.strftime(ARVADOS_TIMEFMT, time.gmtime()), + 'hostname': arvados_node_fqdn(arvados_node), + }) 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': 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. nodelist = [node for node in super(ComputeNodeDriver, self).list_nodes() if self.node_tags.issubset(node.extra.get('tags', []))] - # As of 0.18, the libcloud GCE driver sets node.size to the size's name. - # It's supposed to be the actual size object. Check that it's not, - # and monkeypatch the results when that's the case. - if nodelist and not hasattr(nodelist[0].size, 'id'): - for node in nodelist: + for node in nodelist: + # As of 0.18, the libcloud GCE driver sets node.size to the size's name. + # It's supposed to be the actual size object. Check that it's not, + # and monkeypatch the results when that's the case. + if not hasattr(node.size, 'id'): node.size = self._sizes_by_id[node.size] - node.extra['arvados_node_size'] = node.extra.get('metadata', {}).get('arvados_node_size') + # Get arvados-assigned cloud size id + node.extra['arvados_node_size'] = node.extra.get('metadata', {}).get('arvados_node_size') return nodelist @classmethod