Skip to content

Commit 456ea1b

Browse files
committed
image: deprecate IDFromDigest()
Having this function hides what it's doing, which is just to type-cast to an image.ID (which is a digest). Using a cast is more transparent, so deprecating this function in favor of a regular typecast. Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent d109e42 commit 456ea1b

6 files changed

Lines changed: 18 additions & 22 deletions

File tree

daemon/images/image.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,17 +230,15 @@ func (i *ImageService) getImage(ctx context.Context, refOrID string, options ima
230230
if !ok {
231231
return nil, ErrImageDoesNotExist{ref}
232232
}
233-
id := image.IDFromDigest(digested.Digest())
234-
if img, err := i.imageStore.Get(id); err == nil {
233+
if img, err := i.imageStore.Get(image.ID(digested.Digest())); err == nil {
235234
return img, nil
236235
}
237236
return nil, ErrImageDoesNotExist{ref}
238237
}
239238

240-
if digest, err := i.referenceStore.Get(namedRef); err == nil {
239+
if dgst, err := i.referenceStore.Get(namedRef); err == nil {
241240
// Search the image stores to get the operating system, defaulting to host OS.
242-
id := image.IDFromDigest(digest)
243-
if img, err := i.imageStore.Get(id); err == nil {
241+
if img, err := i.imageStore.Get(image.ID(dgst)); err == nil {
244242
return img, nil
245243
}
246244
}

daemon/list_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func setupContainerWithName(t *testing.T, name string, daemon *Daemon) *containe
3737
t.Helper()
3838
var (
3939
id = uuid.New().String()
40-
computedImageID = digest.FromString(id)
40+
computedImageID = image.ID(digest.FromString(id))
4141
cRoot = filepath.Join(root, id)
4242
)
4343
if err := os.MkdirAll(cRoot, 0755); err != nil {
@@ -54,7 +54,7 @@ func setupContainerWithName(t *testing.T, name string, daemon *Daemon) *containe
5454
c.HostConfig = &containertypes.HostConfig{}
5555

5656
// these are for passing the refreshImage reducer
57-
c.ImageID = image.IDFromDigest(computedImageID)
57+
c.ImageID = computedImageID
5858
c.Config = &containertypes.Config{
5959
Image: computedImageID.String(),
6060
}

distribution/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func (s *imageConfigStore) Put(_ context.Context, c []byte) (digest.Digest, erro
118118
}
119119

120120
func (s *imageConfigStore) Get(_ context.Context, d digest.Digest) ([]byte, error) {
121-
img, err := s.Store.Get(image.IDFromDigest(d))
121+
img, err := s.Store.Get(image.ID(d))
122122
if err != nil {
123123
return nil, err
124124
}

image/image.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func (id ID) Digest() digest.Digest {
2828
}
2929

3030
// IDFromDigest creates an ID from a digest
31+
//
32+
// Deprecated: cast to an ID using ID(digest).
3133
func IDFromDigest(digest digest.Digest) ID {
3234
return ID(digest)
3335
}

image/store.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func NewImageStore(fs StoreBackend, lss LayerGetReleaser) (Store, error) {
6868

6969
func (is *store) restore() error {
7070
err := is.fs.Walk(func(dgst digest.Digest) error {
71-
img, err := is.Get(IDFromDigest(dgst))
71+
img, err := is.Get(ID(dgst))
7272
if err != nil {
7373
logrus.Errorf("invalid image %v, %v", dgst, err)
7474
return nil
@@ -92,13 +92,11 @@ func (is *store) restore() error {
9292
return err
9393
}
9494

95-
imageMeta := &imageMeta{
95+
is.images[ID(dgst)] = &imageMeta{
9696
layer: l,
9797
children: make(map[ID]struct{}),
9898
}
9999

100-
is.images[IDFromDigest(dgst)] = imageMeta
101-
102100
return nil
103101
})
104102
if err != nil {
@@ -141,15 +139,15 @@ func (is *store) Create(config []byte) (ID, error) {
141139
return "", errdefs.InvalidParameter(errors.New("too many non-empty layers in History section"))
142140
}
143141

144-
dgst, err := is.fs.Set(config)
142+
imageDigest, err := is.fs.Set(config)
145143
if err != nil {
146144
return "", errdefs.InvalidParameter(err)
147145
}
148-
imageID := IDFromDigest(dgst)
149146

150147
is.Lock()
151148
defer is.Unlock()
152149

150+
imageID := ID(imageDigest)
153151
if _, exists := is.images[imageID]; exists {
154152
return imageID, nil
155153
}
@@ -167,13 +165,12 @@ func (is *store) Create(config []byte) (ID, error) {
167165
}
168166
}
169167

170-
imageMeta := &imageMeta{
168+
is.images[imageID] = &imageMeta{
171169
layer: l,
172170
children: make(map[ID]struct{}),
173171
}
174172

175-
is.images[imageID] = imageMeta
176-
if err := is.digestSet.Add(imageID.Digest()); err != nil {
173+
if err = is.digestSet.Add(imageDigest); err != nil {
177174
delete(is.images, imageID)
178175
return "", errdefs.InvalidParameter(err)
179176
}
@@ -197,7 +194,7 @@ func (is *store) Search(term string) (ID, error) {
197194
}
198195
return "", errors.WithStack(err)
199196
}
200-
return IDFromDigest(dgst), nil
197+
return ID(dgst), nil
201198
}
202199

203200
func (is *store) Get(id ID) (*Image, error) {

image/tarexport/save.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,7 @@ func (l *tarexporter) parseNames(names []string) (desc map[image.ID]*imageDescri
9494
if !ok {
9595
// Check if digest ID reference
9696
if digested, ok := ref.(reference.Digested); ok {
97-
id := image.IDFromDigest(digested.Digest())
98-
if err := addAssoc(id, nil); err != nil {
97+
if err := addAssoc(image.ID(digested.Digest()), nil); err != nil {
9998
return nil, err
10099
}
101100
continue
@@ -116,7 +115,7 @@ func (l *tarexporter) parseNames(names []string) (desc map[image.ID]*imageDescri
116115
if reference.IsNameOnly(namedRef) {
117116
assocs := l.rs.ReferencesByName(namedRef)
118117
for _, assoc := range assocs {
119-
if err := addAssoc(image.IDFromDigest(assoc.ID), assoc.Ref); err != nil {
118+
if err := addAssoc(image.ID(assoc.ID), assoc.Ref); err != nil {
120119
return nil, err
121120
}
122121
}
@@ -135,7 +134,7 @@ func (l *tarexporter) parseNames(names []string) (desc map[image.ID]*imageDescri
135134
if err != nil {
136135
return nil, err
137136
}
138-
if err := addAssoc(image.IDFromDigest(id), namedRef); err != nil {
137+
if err := addAssoc(image.ID(id), namedRef); err != nil {
139138
return nil, err
140139
}
141140
}

0 commit comments

Comments
 (0)