docs: 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:
        rdf_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 rdf_cloud.CloudMetadataResponse(
          label=request.label or request.url, text=result.text)