func()

in cmd/checker/gcp.go [95:119]


func (tc *tokenCache) fetchToken() (*gcpToken, error) {
	req, err := http.NewRequest("GET", tokenURL(tc.account), nil)
	if err != nil {
		return nil, err
	}
	req.Header.Set("Metadata-Flavor", "Google")

	resp, err := http.DefaultClient.Do(req.WithContext(context.Background()))
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	all, _ := ioutil.ReadAll(resp.Body)

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("%v failed (%d): %s", req, resp.StatusCode, string(all))
	}

	tok := &gcpToken{}
	if err := json.Unmarshal(all, tok); err != nil {
		return nil, fmt.Errorf("can't unmarshal %s: %v", string(all), err)
	}

	return tok, nil
}