diff options
-rw-r--r-- | libpod/image/parts.go | 31 |
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 } |