X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/83d08d7ccbc622ec97948929c83fb91f96743ca2..8ab6b482342b95ad35775867bcdb8fd691b78fb7:/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 f1238db403..23a1017316 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/gce.py +++ b/services/nodemanager/arvnodeman/computenode/driver/gce.py @@ -101,25 +101,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 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()[node.size] + # Get arvados-assigned cloud size id + node.extra['arvados_node_size'] = node.extra.get('metadata', {}).get('arvados_node_size') or node.size.id return nodelist @classmethod