summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpod/image/parts.go31
1 files changed, 17 insertions, 14 deletions
diff --git a/libpod/image/parts.go b/libpod/image/parts.go
index 9adf26fb9..289a02e1f 100644
--- a/libpod/image/parts.go
+++ b/libpod/image/parts.go
@@ -9,12 +9,13 @@ import (
// imageParts describes the parts of an image's name
type imageParts struct {
- transport string
- registry string
- name string
- tag string
- isTagged bool
- hasRegistry bool
+ unnormalizedRef reference.Named // WARNING: Did not go through docker.io[/library] normalization
+ transport string
+ registry string
+ name string
+ tag string
+ isTagged bool
+ hasRegistry bool
}
// Registries must contain a ":" or a "." or be localhost
@@ -45,6 +46,7 @@ func decompose(input string) (imageParts, error) {
if err != nil {
return parts, err
}
+ unnormalizedNamed := imgRef.(reference.Named)
ntag, isTagged := imgRef.(reference.NamedTagged)
if !isTagged {
tag = "latest"
@@ -54,8 +56,8 @@ func decompose(input string) (imageParts, error) {
} else {
tag = ntag.Tag()
}
- registry := reference.Domain(imgRef.(reference.Named))
- imageName := reference.Path(imgRef.(reference.Named))
+ registry := reference.Domain(unnormalizedNamed)
+ imageName := reference.Path(unnormalizedNamed)
// Is this a registry or a repo?
if isRegistry(registry) {
hasRegistry = true
@@ -66,12 +68,13 @@ func decompose(input string) (imageParts, error) {
}
}
return imageParts{
- registry: registry,
- hasRegistry: hasRegistry,
- name: imageName,
- tag: tag,
- isTagged: isTagged,
- transport: DefaultTransport,
+ unnormalizedRef: unnormalizedNamed,
+ registry: registry,
+ hasRegistry: hasRegistry,
+ name: imageName,
+ tag: tag,
+ isTagged: isTagged,
+ transport: DefaultTransport,
}, nil
}