func addPluginMetadata()

in awsplugins/ec2/ec2.go [37:70]


func addPluginMetadata(pluginmd *plugins.PluginMetadata) {
	var instanceData metadata
	imdsURL := "http://169.254.169.254/latest/"

	client := &http.Client{
		Transport: http.DefaultTransport,
	}

	token, err := getToken(imdsURL, client)
	if err != nil {
		logger.Debugf("Unable to fetch EC2 instance metadata token fallback to IMDS V1: %v", err)
	}

	resp, err := getMetadata(imdsURL, client, token)
	if err != nil {
		logger.Errorf("Unable to read EC2 instance metadata: %v", err)
		return
	}

	buf := new(bytes.Buffer)
	if _, err := buf.ReadFrom(resp.Body); err != nil {
		logger.Errorf("Error while reading data from response buffer: %v", err)
		return
	}
	metadata := buf.String()

	if err := json.Unmarshal([]byte(metadata), &instanceData); err != nil {
		logger.Errorf("Error while unmarshal operation: %v", err)
		return
	}

	pluginmd.EC2Metadata = &plugins.EC2Metadata{InstanceID: instanceData.InstanceID, AvailabilityZone: instanceData.AvailabilityZone}
	pluginmd.Origin = Origin
}