func()

in lib/ec2macosinit/imds.go [59:89]


func (i *IMDSConfig) getNewToken() (err error) {
	// Create request
	client := &http.Client{}
	req, err := http.NewRequest(http.MethodPut, imdsBase+tokenEndpoint, nil)
	if err != nil {
		return fmt.Errorf("ec2macosinit: error while creating new HTTP request: %s\n", err)
	}
	req.Header.Set(tokenRequestTTLHeader, strconv.FormatInt(int64(imdsTokenTTL), 10))

	// Make request
	resp, err := client.Do(req)
	if err != nil {
		return fmt.Errorf("ec2macosinit: error while requesting new token: %s\n", err)
	}

	// Validate response code
	if resp.StatusCode != 200 {
		return fmt.Errorf("ec2macosinit: received a non-200 status code from IMDS: %d - %s\n",
			resp.StatusCode,
			resp.Status,
		)
	}

	// Set returned value
	i.token, err = ioReadCloserToString(resp.Body)
	if err != nil {
		return fmt.Errorf("ec2macosinit: error reading response body: %s\n", err)
	}

	return nil
}