def GetMetaData(self, request): """Get metadata from local metadata server. Any failed URL check will fail the whole action since our bios/service checks may not always correctly identify cloud machines. We don't want to wait on multiple DNS timeouts. Args: request: CloudMetadataRequest object Returns: cloud.CloudMetadataResponse object Raises: ValueError: if request has a timeout of 0. This is a defensive check (we pass 1.0) because the requests library just times out and it's not obvious why. """ if request.timeout == 0: raise ValueError("Requests library can't handle timeout of 0") result = requests.request("GET", request.url, headers=request.headers, timeout=request.timeout) # By default requests doesn't raise on HTTP error codes. result.raise_for_status() # Requests does not always raise an exception when an incorrect response # is received. This fixes that behaviour. if not result.ok: raise requests.RequestException(response=result) return cloud.CloudMetadataResponse(label=request.label or request.url, text=result.text)
def GetCloudVMMetadata(self, args): result_list = [] for request in args.requests: result_list.append( cloud.CloudMetadataResponse(label=request.label or request.url, text=request.label)) return [ cloud.CloudMetadataResponses(responses=result_list, instance_type="GOOGLE") ]