summaryrefslogtreecommitdiff
path: root/libpod/image
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2019-01-09 20:43:13 +0100
committerMiloslav Trmač <mitr@redhat.com>2019-01-14 04:07:23 +0100
commit2171a393904051ab724fa08d01a964adbf7c1880 (patch)
tree8fdf09d229fa4cf326e69426c6dcf20fe50f9228 /libpod/image
parent72777b7fee22e04edee08034927d5864ffc4bc3e (diff)
downloadpodman-2171a393904051ab724fa08d01a964adbf7c1880.tar.gz
podman-2171a393904051ab724fa08d01a964adbf7c1880.tar.bz2
podman-2171a393904051ab724fa08d01a964adbf7c1880.zip
Use imageParts.referenceWithRegistry in getPullRefPair
CHANGES BEHAVIOR. This bypasses .assemble, and preserves the original lack of tag / original digest instead of adding :latest/:none (still subject to ParseStoreReference normalization). Using the original digest seems clearly correct; dropping the :latest suffix from .image strings only affects user-visible input; later uses of the return value of pullImageFrom... use ParseStoreReference, which calls reference.TagNameOnly, so the image name should be processed the same way whether it contains a tag or not. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
Diffstat (limited to 'libpod/image')
-rw-r--r--libpod/image/pull.go8
-rw-r--r--libpod/image/pull_test.go12
2 files changed, 9 insertions, 11 deletions
diff --git a/libpod/image/pull.go b/libpod/image/pull.go
index ee5e333e3..70f89ea7d 100644
--- a/libpod/image/pull.go
+++ b/libpod/image/pull.go
@@ -76,9 +76,11 @@ func (ir *Runtime) getPullRefPair(srcRef types.ImageReference, destName string)
decomposedDest, err := decompose(destName)
if err == nil && !decomposedDest.hasRegistry {
// If the image doesn't have a registry, set it as the default repo
- decomposedDest.registry = DefaultLocalRegistry
- decomposedDest.hasRegistry = true
- destName = decomposedDest.assemble()
+ ref, err := decomposedDest.referenceWithRegistry(DefaultLocalRegistry)
+ if err != nil {
+ return pullRefPair{}, err
+ }
+ destName = ref.String()
}
reference := destName
diff --git a/libpod/image/pull_test.go b/libpod/image/pull_test.go
index 4a0119070..2176678d3 100644
--- a/libpod/image/pull_test.go
+++ b/libpod/image/pull_test.go
@@ -76,9 +76,7 @@ func TestGetPullRefPair(t *testing.T) {
},
{ // name, no registry, no tag:
"dir:/dev/this-does-not-exist", "from-directory",
- // FIXME(?) Adding a registry also adds a :latest tag. OTOH that actually matches the used destination.
- // Either way it is surprising that the localhost/ addition changes this. (mitr hoping to remove the "image" member).
- "localhost/from-directory:latest", "localhost/from-directory:latest",
+ "localhost/from-directory", "localhost/from-directory:latest",
},
{ // registry/name:tag :
"dir:/dev/this-does-not-exist", "example.com/from-directory:notlatest",
@@ -90,8 +88,7 @@ func TestGetPullRefPair(t *testing.T) {
},
{ // name@digest, no registry:
"dir:/dev/this-does-not-exist", "from-directory" + digestSuffix,
- // FIXME?! Why is this dropping the digest, and adding :none?!
- "localhost/from-directory:none", "localhost/from-directory:none",
+ "localhost/from-directory" + digestSuffix, "localhost/from-directory" + digestSuffix,
},
{ // registry/name@digest:
"dir:/dev/this-does-not-exist", "example.com/from-directory" + digestSuffix,
@@ -211,14 +208,13 @@ func TestPullGoalFromImageReference(t *testing.T) {
false,
},
{ // Relative path, single element.
- // FIXME? Note the :latest difference in .image.
"dir:this-does-not-exist",
- []expected{{"localhost/this-does-not-exist:latest", "localhost/this-does-not-exist:latest"}},
+ []expected{{"localhost/this-does-not-exist", "localhost/this-does-not-exist:latest"}},
false,
},
{ // Relative path, multiple elements.
"dir:testdata/this-does-not-exist",
- []expected{{"localhost/testdata/this-does-not-exist:latest", "localhost/testdata/this-does-not-exist:latest"}},
+ []expected{{"localhost/testdata/this-does-not-exist", "localhost/testdata/this-does-not-exist:latest"}},
false,
},