func describeLocatedImage(refInput *app.ComponentInput, baseNamespace string) string { match := refInput.ResolvedMatch switch { case match == nil: return "" case match.ImageStream != nil: if image := match.Image; image != nil { shortID := imageapi.ShortDockerImageID(image, 7) if !image.Created.IsZero() { shortID = fmt.Sprintf("%s (%s old)", shortID, describe.FormatRelativeTime(image.Created.Time)) } return fmt.Sprintf("Found image %s in image stream %s under tag %q for %q", shortID, localOrRemoteName(match.ImageStream.ObjectMeta, baseNamespace), match.ImageTag, refInput) } return fmt.Sprintf("Found tag :%s in image stream %s for %q", match.ImageTag, localOrRemoteName(match.ImageStream.ObjectMeta, baseNamespace), refInput) case match.Image != nil: image := match.Image shortID := imageapi.ShortDockerImageID(image, 7) if !image.Created.IsZero() { shortID = fmt.Sprintf("%s (%s old)", shortID, describe.FormatRelativeTime(image.Created.Time)) } return fmt.Sprintf("Found Docker image %s from %s for %q", shortID, match.Meta["registry"], refInput) default: return "" } }
func descriptionFor(image *imageapi.DockerImage, value, from string, tag string) string { shortID := imageapi.ShortDockerImageID(image, 7) tagPart := "" if len(tag) > 0 { tagPart = fmt.Sprintf(" (tag %q)", tag) } parts := []string{fmt.Sprintf("Docker image %q%v", value, tagPart), shortID, fmt.Sprintf("from %s", from)} if image.Size > 0 { mb := float64(image.Size) / float64(1024*1024) parts = append(parts, fmt.Sprintf("%f", mb)) } if len(image.Author) > 0 { parts = append(parts, fmt.Sprintf("author %s", image.Author)) } if len(image.Comment) > 0 { parts = append(parts, image.Comment) } return strings.Join(parts, ", ") }