Skip to content

Commit afb3eda

Browse files
committed
Use TagImage in Commit
Signed-off-by: Daniel Nephin <dnephin@docker.com>
1 parent 2d97f5e commit afb3eda

File tree

4 files changed

+14
-35
lines changed

4 files changed

+14
-35
lines changed

api/server/router/image/backend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type imageBackend interface {
2929
ImageHistory(imageName string) ([]*image.HistoryResponseItem, error)
3030
Images(imageFilters filters.Args, all bool, withExtraAttrs bool) ([]*types.ImageSummary, error)
3131
LookupImage(name string) (*types.ImageInspect, error)
32-
TagImage(imageName, repository, tag string) error
32+
TagImage(imageName, repository, tag string) (string, error)
3333
ImagesPrune(ctx context.Context, pruneFilters filters.Args) (*types.ImagesPruneReport, error)
3434
}
3535

api/server/router/image/image_routes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ func (s *imageRouter) postImagesTag(ctx context.Context, w http.ResponseWriter,
303303
if err := httputils.ParseForm(r); err != nil {
304304
return err
305305
}
306-
if err := s.backend.TagImage(vars["name"], r.Form.Get("repo"), r.Form.Get("tag")); err != nil {
306+
if _, err := s.backend.TagImage(vars["name"], r.Form.Get("repo"), r.Form.Get("tag")); err != nil {
307307
return err
308308
}
309309
w.WriteHeader(http.StatusCreated)

daemon/commit.go

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"strings"
99
"time"
1010

11-
"github.com/docker/distribution/reference"
1211
"github.com/docker/docker/api/types/backend"
1312
containertypes "github.com/docker/docker/api/types/container"
1413
"github.com/docker/docker/builder/dockerfile"
@@ -176,9 +175,12 @@ func (daemon *Daemon) CreateImageFromContainer(name string, c *backend.CreateIma
176175
return "", err
177176
}
178177

179-
imageRef, err := daemon.tagCommit(c.Repo, c.Tag, id)
180-
if err != nil {
181-
return "", err
178+
var imageRef string
179+
if c.Repo != "" {
180+
imageRef, err = daemon.TagImage(string(id), c.Repo, c.Tag)
181+
if err != nil {
182+
return "", err
183+
}
182184
}
183185
daemon.LogContainerEventWithAttributes(container, "commit", map[string]string{
184186
"comment": c.Comment,
@@ -247,30 +249,6 @@ func (daemon *Daemon) commitImage(c backend.CommitConfig) (image.ID, error) {
247249
return id, nil
248250
}
249251

250-
// TODO: remove from Daemon, move to api backend
251-
func (daemon *Daemon) tagCommit(repo string, tag string, id image.ID) (string, error) {
252-
imageRef := ""
253-
if repo != "" {
254-
newTag, err := reference.ParseNormalizedNamed(repo) // todo: should move this to API layer
255-
if err != nil {
256-
return "", err
257-
}
258-
if !reference.IsNameOnly(newTag) {
259-
return "", errors.Errorf("unexpected repository name: %s", repo)
260-
}
261-
if tag != "" {
262-
if newTag, err = reference.WithTag(newTag, tag); err != nil {
263-
return "", err
264-
}
265-
}
266-
if err := daemon.TagImageWithReference(id, newTag); err != nil {
267-
return "", err
268-
}
269-
imageRef = reference.FamiliarString(newTag)
270-
}
271-
return imageRef, nil
272-
}
273-
274252
func exportContainerRw(layerStore layer.Store, id, mountLabel string) (arch io.ReadCloser, err error) {
275253
rwlayer, err := layerStore.GetRWLayer(id)
276254
if err != nil {

daemon/image_tag.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,24 @@ import (
77

88
// TagImage creates the tag specified by newTag, pointing to the image named
99
// imageName (alternatively, imageName can also be an image ID).
10-
func (daemon *Daemon) TagImage(imageName, repository, tag string) error {
10+
func (daemon *Daemon) TagImage(imageName, repository, tag string) (string, error) {
1111
imageID, _, err := daemon.GetImageIDAndOS(imageName)
1212
if err != nil {
13-
return err
13+
return "", err
1414
}
1515

1616
newTag, err := reference.ParseNormalizedNamed(repository)
1717
if err != nil {
18-
return err
18+
return "", err
1919
}
2020
if tag != "" {
2121
if newTag, err = reference.WithTag(reference.TrimNamed(newTag), tag); err != nil {
22-
return err
22+
return "", err
2323
}
2424
}
2525

26-
return daemon.TagImageWithReference(imageID, newTag)
26+
err = daemon.TagImageWithReference(imageID, newTag)
27+
return reference.FamiliarString(newTag), err
2728
}
2829

2930
// TagImageWithReference adds the given reference to the image ID provided.

0 commit comments

Comments
 (0)