Skip to content

Commit

Permalink
Parse fq name correctly for images
Browse files Browse the repository at this point in the history
When parsing a string name for repo and tag (for images output), we
should be using parsenormalizedname and reference.Canonical to
get the proper output.

Resolves: containers#2175

Signed-off-by: baude <bbaude@redhat.com>
  • Loading branch information
baude committed Feb 13, 2019
1 parent ee27c39 commit f29a11c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
6 changes: 5 additions & 1 deletion cmd/podman/images.go
Expand Up @@ -247,8 +247,12 @@ func getImagesTemplateOutput(ctx context.Context, images []*adapter.ContainerIma
}

// get all specified repo:tag pairs and print them separately
repopairs, err := image.ReposToMap(img.Names())
if err != nil {
logrus.Errorf("error finding tag/digest for %s", img.ID())
}
outer:
for repo, tags := range image.ReposToMap(img.Names()) {
for repo, tags := range repopairs {
for _, tag := range tags {
size, err := img.Size(ctx)
var sizeStr string
Expand Down
17 changes: 12 additions & 5 deletions libpod/image/utils.go
Expand Up @@ -87,22 +87,29 @@ func hasTransport(image string) bool {

// ReposToMap parses the specified repotags and returns a map with repositories
// as keys and the corresponding arrays of tags as values.
func ReposToMap(repotags []string) map[string][]string {
func ReposToMap(repotags []string) (map[string][]string, error) {
// map format is repo -> tag
repos := make(map[string][]string)
for _, repo := range repotags {
var repository, tag string
if len(repo) > 0 {
li := strings.LastIndex(repo, ":")
repository = repo[0:li]
tag = repo[li+1:]
named, err := reference.ParseNormalizedNamed(repo)
repository = named.Name()
if err != nil {
return nil, err
}
if ref, ok := named.(reference.NamedTagged); ok {
tag = ref.Tag()
} else if ref, ok := named.(reference.Canonical); ok {
tag = ref.Digest().String()
}
}
repos[repository] = append(repos[repository], tag)
}
if len(repos) == 0 {
repos["<none>"] = []string{"<none>"}
}
return repos
return repos, nil
}

// GetAdditionalTags returns a list of reference.NamedTagged for the
Expand Down

0 comments on commit f29a11c

Please sign in to comment.