Record the original reference.Named in imageParts

We will eventually want to eliminate most members of imageParts
in favor of using the c/image/docker/reference API directly.

For now, just record the reference.Named value, and we will
replace uses of the other members before removing them.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
Miloslav Trmač
2019-01-09 18:28:28 +01:00
parent 6486e2c41b
commit c19294c011

View File

@ -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
}