3a1279393f
Remove forked reference package. Use normalized named values everywhere and familiar functions to convert back to familiar strings for UX and storage compatibility. Enforce that the source repository in the distribution metadata is always a normalized string, ignore invalid values which are not. Update distribution tests to use normalized values. Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
37 lines
1 KiB
Go
37 lines
1 KiB
Go
package daemon
|
|
|
|
import (
|
|
"github.com/docker/distribution/reference"
|
|
"github.com/docker/docker/image"
|
|
)
|
|
|
|
// TagImage creates the tag specified by newTag, pointing to the image named
|
|
// imageName (alternatively, imageName can also be an image ID).
|
|
func (daemon *Daemon) TagImage(imageName, repository, tag string) error {
|
|
imageID, err := daemon.GetImageID(imageName)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
newTag, err := reference.ParseNormalizedNamed(repository)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if tag != "" {
|
|
if newTag, err = reference.WithTag(reference.TrimNamed(newTag), tag); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return daemon.TagImageWithReference(imageID, newTag)
|
|
}
|
|
|
|
// TagImageWithReference adds the given reference to the image ID provided.
|
|
func (daemon *Daemon) TagImageWithReference(imageID image.ID, newTag reference.Named) error {
|
|
if err := daemon.referenceStore.AddTag(newTag, imageID.Digest(), true); err != nil {
|
|
return err
|
|
}
|
|
|
|
daemon.LogImageEvent(imageID.String(), reference.FamiliarString(newTag), "tag")
|
|
return nil
|
|
}
|