summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
Diffstat (limited to 'libpod')
-rw-r--r--libpod/image/parts.go35
-rw-r--r--libpod/image/parts_test.go19
2 files changed, 11 insertions, 43 deletions
diff --git a/libpod/image/parts.go b/libpod/image/parts.go
index 62cca2757..dfdf0b08a 100644
--- a/libpod/image/parts.go
+++ b/libpod/image/parts.go
@@ -10,10 +10,6 @@ import (
// imageParts describes the parts of an image's name
type imageParts struct {
unnormalizedRef reference.Named // WARNING: Did not go through docker.io[/library] normalization
- registry string
- name string
- tag string
- isTagged bool
hasRegistry bool
}
@@ -37,45 +33,18 @@ func GetImageBaseName(input string) (string, error) {
// decompose breaks an input name into an imageParts description
func decompose(input string) (imageParts, error) {
- var (
- parts imageParts
- hasRegistry bool
- tag string
- )
imgRef, err := reference.Parse(input)
if err != nil {
- return parts, err
+ return imageParts{}, err
}
unnormalizedNamed := imgRef.(reference.Named)
- ntag, isTagged := imgRef.(reference.NamedTagged)
- if !isTagged {
- tag = "latest"
- if _, hasDigest := imgRef.(reference.Digested); hasDigest {
- tag = "none"
- }
- } else {
- tag = ntag.Tag()
- }
- registry := reference.Domain(unnormalizedNamed)
- imageName := reference.Path(unnormalizedNamed)
// ip.unnormalizedRef, because it uses reference.Parse and not reference.ParseNormalizedNamed,
// does not use the standard heuristics for domains vs. namespaces/repos, so we need to check
// explicitly.
- if isRegistry(registry) {
- hasRegistry = true
- } else {
- if registry != "" {
- imageName = registry + "/" + imageName
- registry = ""
- }
- }
+ hasRegistry := isRegistry(reference.Domain(unnormalizedNamed))
return imageParts{
unnormalizedRef: unnormalizedNamed,
- registry: registry,
hasRegistry: hasRegistry,
- name: imageName,
- tag: tag,
- isTagged: isTagged,
}, nil
}
diff --git a/libpod/image/parts_test.go b/libpod/image/parts_test.go
index dd4a7b27f..726e55e86 100644
--- a/libpod/image/parts_test.go
+++ b/libpod/image/parts_test.go
@@ -13,30 +13,30 @@ func TestDecompose(t *testing.T) {
for _, c := range []struct {
input string
registry, name, suspiciousTagValueForSearch string
- isTagged, hasRegistry bool
+ hasRegistry bool
}{
- {"#", "", "", "", false, false}, // Entirely invalid input
+ {"#", "", "", "", false}, // Entirely invalid input
{ // Fully qualified docker.io, name-only input
- "docker.io/library/busybox", "docker.io", "library/busybox", "latest", false, true,
+ "docker.io/library/busybox", "docker.io", "library/busybox", "latest", true,
},
{ // Fully qualified example.com, name-only input
- "example.com/ns/busybox", "example.com", "ns/busybox", "latest", false, true,
+ "example.com/ns/busybox", "example.com", "ns/busybox", "latest", true,
},
{ // Unqualified single-name input
- "busybox", "", "busybox", "latest", false, false,
+ "busybox", "", "busybox", "latest", false,
},
{ // Unqualified namespaced input
- "ns/busybox", "", "ns/busybox", "latest", false, false,
+ "ns/busybox", "", "ns/busybox", "latest", false,
},
{ // name:tag
- "example.com/ns/busybox:notlatest", "example.com", "ns/busybox", "notlatest", true, true,
+ "example.com/ns/busybox:notlatest", "example.com", "ns/busybox", "notlatest", true,
},
{ // name@digest
// FIXME? .suspiciousTagValueForSearch == "none"
- "example.com/ns/busybox" + digestSuffix, "example.com", "ns/busybox", "none", false, true,
+ "example.com/ns/busybox" + digestSuffix, "example.com", "ns/busybox", "none", true,
},
{ // name:tag@digest
- "example.com/ns/busybox:notlatest" + digestSuffix, "example.com", "ns/busybox", "notlatest", true, true,
+ "example.com/ns/busybox:notlatest" + digestSuffix, "example.com", "ns/busybox", "notlatest", true,
},
} {
parts, err := decompose(c.input)
@@ -48,7 +48,6 @@ func TestDecompose(t *testing.T) {
assert.Equal(t, c.registry, registry, c.input)
assert.Equal(t, c.name, name, c.input)
assert.Equal(t, c.suspiciousTagValueForSearch, suspiciousTagValueForSearch, c.input)
- assert.Equal(t, c.isTagged, parts.isTagged, c.input)
assert.Equal(t, c.hasRegistry, parts.hasRegistry, c.input)
}
}