api: Extract parsing reference from repo and tag

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
This commit is contained in:
Paweł Gronowski
2023-01-31 10:27:09 +01:00
parent afc6e3fa46
commit 62be425bcc
5 changed files with 52 additions and 63 deletions

View File

@@ -121,25 +121,6 @@ func merge(userConf, imageConf *containertypes.Config) error {
func (daemon *Daemon) CreateImageFromContainer(ctx context.Context, name string, c *backend.CreateImageConfig) (string, error) {
start := time.Now()
var newRef reference.Named
if c.Repo != "" {
ref, err := reference.ParseNormalizedNamed(c.Repo)
if err != nil {
return "", errdefs.InvalidParameter(err)
}
if c.Tag != "" {
ref, err = reference.WithTag(ref, c.Tag)
if err != nil {
return "", errdefs.InvalidParameter(err)
}
} else {
ref = reference.TagNameOnly(ref)
}
newRef = ref
}
container, err := daemon.GetContainer(name)
if err != nil {
return "", err
@@ -191,12 +172,12 @@ func (daemon *Daemon) CreateImageFromContainer(ctx context.Context, name string,
}
imageRef := ""
if newRef != nil {
err = daemon.imageService.TagImage(ctx, id, newRef)
if c.Tag != nil {
err = daemon.imageService.TagImage(ctx, id, c.Tag)
if err != nil {
return "", err
}
imageRef = reference.FamiliarString(newRef)
imageRef = reference.FamiliarString(c.Tag)
}
daemon.LogContainerEventWithAttributes(container, "commit", map[string]string{
"comment": c.Comment,