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
}