summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2019-01-09 21:42:37 +0100
committerMiloslav Trmač <mitr@redhat.com>2019-01-14 04:07:23 +0100
commitf92c3ce35033a558a9c86c824a829368a472f873 (patch)
treedf4a527285d53d505790993ea6e6db6bb23fbf9b
parentb9c0f2c987688a8e7ee2c8f4e4fbf6b1a8fee024 (diff)
downloadpodman-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.go18
-rw-r--r--libpod/image/image_test.go6
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())
}
}
}