func()

in local-container-endpoints/handlers/metadata.go [68:94]


func (service *MetadataService) containerMetadataResponse(w http.ResponseWriter, identifier string, callerIP string) error {
	timeout, _ := time.ParseDuration(config.HTTPTimeoutDuration)
	ctx, cancel := context.WithTimeout(context.Background(), timeout)
	defer cancel()

	containers, err := service.dockerClient.ContainerList(ctx)
	if err != nil {
		return errors.Wrap(err, "Failed to list running containers")
	}
	container, err := findContainer(containers, identifier, callerIP)
	if err != nil {
		return err
	}

	data := metadata.GetContainerMetadata(container)

	if service.baseContainerMetadata != nil {
		response := structs.Map(data)
		// Merges, with baseContainerMetadata taking priority on conflicts
		response = mergemap.Merge(response, service.baseContainerMetadata)
		writeJSONResponse(w, response)
	} else {
		writeJSONResponse(w, data)
	}

	return nil
}