diff options
author | Miloslav Trmač <mitr@redhat.com> | 2019-01-09 21:42:37 +0100 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2019-01-14 04:07:23 +0100 |
commit | f92c3ce35033a558a9c86c824a829368a472f873 (patch) | |
tree | df4a527285d53d505790993ea6e6db6bb23fbf9b | |
parent | b9c0f2c987688a8e7ee2c8f4e4fbf6b1a8fee024 (diff) | |
download | podman-f92c3ce35033a558a9c86c824a829368a472f873.tar.gz podman-f92c3ce35033a558a9c86c824a829368a472f873.tar.bz2 podman-f92c3ce35033a558a9c86c824a829368a472f873.zip |
Return a reference.Named from normalizedTag
Instead of returning a string, return a native value and convert it
into the string in the caller, to make it that small bit more
common to use reference types.
Should not change behavior.
Signed-off-by: Miloslav Trmač <mitr@redhat.com>
-rw-r--r-- | libpod/image/image.go | 18 | ||||
-rw-r--r-- | libpod/image/image_test.go | 6 |
2 files changed, 12 insertions, 12 deletions
diff --git a/libpod/image/image.go b/libpod/image/image.go index 0b743e144..7442f1945 100644 --- a/libpod/image/image.go +++ b/libpod/image/image.go @@ -452,42 +452,42 @@ func getImageDigest(ctx context.Context, src types.ImageReference, sc *types.Sys return "@" + digest.Hex(), nil } -// normalizeTag returns the canonical version of tag for use in Image.Names() -func normalizeTag(tag string) (string, error) { +// normalizedTag returns the canonical version of tag for use in Image.Names() +func normalizedTag(tag string) (reference.Named, error) { decomposedTag, err := decompose(tag) if err != nil { - return "", err + return nil, err } // If the input doesn't specify a registry, set the registry to localhost var ref reference.Named if !decomposedTag.hasRegistry { ref, err = decomposedTag.referenceWithRegistry(DefaultLocalRegistry) if err != nil { - return "", err + return nil, err } } else { ref, err = decomposedTag.normalizedReference() if err != nil { - return "", err + return nil, err } } // If the input does not have a tag, we need to add one (latest) ref = reference.TagNameOnly(ref) - return ref.String(), nil + return ref, nil } // TagImage adds a tag to the given image func (i *Image) TagImage(tag string) error { i.reloadImage() - tag, err := normalizeTag(tag) + ref, err := normalizedTag(tag) if err != nil { return err } tags := i.Names() - if util.StringInSlice(tag, tags) { + if util.StringInSlice(ref.String(), tags) { return nil } - tags = append(tags, tag) + tags = append(tags, ref.String()) if err := i.imageruntime.store.SetNames(i.ID(), tags); err != nil { return err } diff --git a/libpod/image/image_test.go b/libpod/image/image_test.go index 96148c2cd..077ae460e 100644 --- a/libpod/image/image_test.go +++ b/libpod/image/image_test.go @@ -257,7 +257,7 @@ func Test_stripSha256(t *testing.T) { assert.Equal(t, stripSha256("sha256:a"), "a") } -func TestNormalizeTag(t *testing.T) { +func TestNormalizedTag(t *testing.T) { const digestSuffix = "@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" for _, c := range []struct{ input, expected string }{ @@ -270,12 +270,12 @@ func TestNormalizeTag(t *testing.T) { {"ns/busybox:latest", "localhost/ns/busybox:latest"}, // Unqualified with a dot-less namespace {"docker.io/busybox:latest", "docker.io/library/busybox:latest"}, // docker.io without /library/ } { - res, err := normalizeTag(c.input) + res, err := normalizedTag(c.input) if c.expected == "" { assert.Error(t, err, c.input) } else { assert.NoError(t, err, c.input) - assert.Equal(t, c.expected, res) + assert.Equal(t, c.expected, res.String()) } } } |