X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/088314afe2987920628b9e921e7de18a2bdd5745..b17b7dd25a7daea501538419fadfd79b46a72aeb:/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 1c6d214fe8..9837ad9bc3 100644 --- a/services/nodemanager/arvnodeman/computenode/driver/gce.py +++ b/services/nodemanager/arvnodeman/computenode/driver/gce.py @@ -67,6 +67,10 @@ class ComputeNodeDriver(BaseComputeNodeDriver): def arvados_create_kwargs(self, size, arvados_node): name = self.create_cloud_name(arvados_node) + + if size.scratch > 375000: + self._logger.warning("Requested %d MB scratch space, but GCE driver currently only supports attaching a single 375 GB disk.", size.scratch) + disks = [ {'autoDelete': True, 'boot': True, @@ -136,6 +140,10 @@ class ComputeNodeDriver(BaseComputeNodeDriver): raise def sync_node(self, cloud_node, arvados_node): + # Update the cloud node record to ensure we have the correct metadata + # fingerprint. + cloud_node = self.real.ex_get_node(cloud_node.name, cloud_node.extra['zone']) + # We can't store the FQDN on the name attribute or anything like it, # because (a) names are static throughout the node's life (so FQDN # isn't available because we don't know it at node creation time) and @@ -147,12 +155,8 @@ class ComputeNodeDriver(BaseComputeNodeDriver): self._find_metadata(metadata_items, 'hostname')['value'] = hostname except KeyError: metadata_items.append({'key': 'hostname', 'value': hostname}) - response = self.real.connection.async_request( - '/zones/{}/instances/{}/setMetadata'.format( - cloud_node.extra['zone'].name, cloud_node.name), - method='POST', data=metadata_req) - if not response.success(): - raise Exception("setMetadata error: {}".format(response.error)) + + self.real.ex_set_node_metadata(cloud_node, metadata_items) @classmethod def node_fqdn(cls, node):