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 <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2022-11-08 12:03:20 +01:00
parent d109e429dd
commit 456ea1bb1d
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C
6 changed files with 18 additions and 22 deletions
daemon
distribution
image

View file

@ -230,17 +230,15 @@ func (i *ImageService) getImage(ctx context.Context, refOrID string, options ima
if !ok {
return nil, ErrImageDoesNotExist{ref}
}
id := image.IDFromDigest(digested.Digest())
if img, err := i.imageStore.Get(id); err == nil {
if img, err := i.imageStore.Get(image.ID(digested.Digest())); err == nil {
return img, nil
}
return nil, ErrImageDoesNotExist{ref}
}
if digest, err := i.referenceStore.Get(namedRef); err == nil {
if dgst, err := i.referenceStore.Get(namedRef); err == nil {
// Search the image stores to get the operating system, defaulting to host OS.
id := image.IDFromDigest(digest)
if img, err := i.imageStore.Get(id); err == nil {
if img, err := i.imageStore.Get(image.ID(dgst)); err == nil {
return img, nil
}
}

View file

@ -37,7 +37,7 @@ func setupContainerWithName(t *testing.T, name string, daemon *Daemon) *containe
t.Helper()
var (
id = uuid.New().String()
computedImageID = digest.FromString(id)
computedImageID = image.ID(digest.FromString(id))
cRoot = filepath.Join(root, id)
)
if err := os.MkdirAll(cRoot, 0755); err != nil {
@ -54,7 +54,7 @@ func setupContainerWithName(t *testing.T, name string, daemon *Daemon) *containe
c.HostConfig = &containertypes.HostConfig{}
// these are for passing the refreshImage reducer
c.ImageID = image.IDFromDigest(computedImageID)
c.ImageID = computedImageID
c.Config = &containertypes.Config{
Image: computedImageID.String(),
}

View file

@ -118,7 +118,7 @@ func (s *imageConfigStore) Put(_ context.Context, c []byte) (digest.Digest, erro
}
func (s *imageConfigStore) Get(_ context.Context, d digest.Digest) ([]byte, error) {
img, err := s.Store.Get(image.IDFromDigest(d))
img, err := s.Store.Get(image.ID(d))
if err != nil {
return nil, err
}

View file

@ -28,6 +28,8 @@ func (id ID) Digest() digest.Digest {
}
// IDFromDigest creates an ID from a digest
//
// Deprecated: cast to an ID using ID(digest).
func IDFromDigest(digest digest.Digest) ID {
return ID(digest)
}

View file

@ -68,7 +68,7 @@ func NewImageStore(fs StoreBackend, lss LayerGetReleaser) (Store, error) {
func (is *store) restore() error {
err := is.fs.Walk(func(dgst digest.Digest) error {
img, err := is.Get(IDFromDigest(dgst))
img, err := is.Get(ID(dgst))
if err != nil {
logrus.Errorf("invalid image %v, %v", dgst, err)
return nil
@ -92,13 +92,11 @@ func (is *store) restore() error {
return err
}
imageMeta := &imageMeta{
is.images[ID(dgst)] = &imageMeta{
layer: l,
children: make(map[ID]struct{}),
}
is.images[IDFromDigest(dgst)] = imageMeta
return nil
})
if err != nil {
@ -141,15 +139,15 @@ func (is *store) Create(config []byte) (ID, error) {
return "", errdefs.InvalidParameter(errors.New("too many non-empty layers in History section"))
}
dgst, err := is.fs.Set(config)
imageDigest, err := is.fs.Set(config)
if err != nil {
return "", errdefs.InvalidParameter(err)
}
imageID := IDFromDigest(dgst)
is.Lock()
defer is.Unlock()
imageID := ID(imageDigest)
if _, exists := is.images[imageID]; exists {
return imageID, nil
}
@ -167,13 +165,12 @@ func (is *store) Create(config []byte) (ID, error) {
}
}
imageMeta := &imageMeta{
is.images[imageID] = &imageMeta{
layer: l,
children: make(map[ID]struct{}),
}
is.images[imageID] = imageMeta
if err := is.digestSet.Add(imageID.Digest()); err != nil {
if err = is.digestSet.Add(imageDigest); err != nil {
delete(is.images, imageID)
return "", errdefs.InvalidParameter(err)
}
@ -197,7 +194,7 @@ func (is *store) Search(term string) (ID, error) {
}
return "", errors.WithStack(err)
}
return IDFromDigest(dgst), nil
return ID(dgst), nil
}
func (is *store) Get(id ID) (*Image, error) {

View file

@ -94,8 +94,7 @@ func (l *tarexporter) parseNames(names []string) (desc map[image.ID]*imageDescri
if !ok {
// Check if digest ID reference
if digested, ok := ref.(reference.Digested); ok {
id := image.IDFromDigest(digested.Digest())
if err := addAssoc(id, nil); err != nil {
if err := addAssoc(image.ID(digested.Digest()), nil); err != nil {
return nil, err
}
continue
@ -116,7 +115,7 @@ func (l *tarexporter) parseNames(names []string) (desc map[image.ID]*imageDescri
if reference.IsNameOnly(namedRef) {
assocs := l.rs.ReferencesByName(namedRef)
for _, assoc := range assocs {
if err := addAssoc(image.IDFromDigest(assoc.ID), assoc.Ref); err != nil {
if err := addAssoc(image.ID(assoc.ID), assoc.Ref); err != nil {
return nil, err
}
}
@ -135,7 +134,7 @@ func (l *tarexporter) parseNames(names []string) (desc map[image.ID]*imageDescri
if err != nil {
return nil, err
}
if err := addAssoc(image.IDFromDigest(id), namedRef); err != nil {
if err := addAssoc(image.ID(id), namedRef); err != nil {
return nil, err
}
}