in dp_check/dp_check.go [958:982]
func getFromMetadata(timeout time.Duration, urlStr string) ([]byte, error) {
parsedURL, err := url.Parse(urlStr)
if err != nil {
return nil, err
}
client := &http.Client{Timeout: timeout}
req := &http.Request{
Method: http.MethodGet,
URL: parsedURL,
Header: http.Header{"Metadata-Flavor": {"Google"}},
}
resp, err := client.Do(req)
if err != nil {
return nil, fmt.Errorf("failed communicating with metadata server: %v", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("metadata server returned resp with non-OK: %v", resp)
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed reading from metadata server: %v", err)
}
return body, nil
}