Merge pull request #46014 from vvoland/c8d-inspect-fix-duplicate-digested-24

[backport 24.0] c8d/inspect: Don't duplicate digested ref
This commit is contained in:
Sebastiaan van Stijn 2023-07-18 20:19:57 +02:00 committed by GitHub
commit 4f0747b0df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -130,7 +130,7 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima
return nil, err return nil, err
} }
// Each image will result in 2 references (named and digested). // Usually each image will result in 2 references (named and digested).
refs := make([]reference.Named, 0, len(tagged)*2) refs := make([]reference.Named, 0, len(tagged)*2)
for _, i := range tagged { for _, i := range tagged {
if i.UpdatedAt.After(lastUpdated) { if i.UpdatedAt.After(lastUpdated) {
@ -155,6 +155,11 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima
} }
refs = append(refs, name) refs = append(refs, name)
if _, ok := name.(reference.Digested); ok {
// Image name already contains a digest, so no need to create a digested reference.
continue
}
digested, err := reference.WithDigest(reference.TrimNamed(name), desc.Target.Digest) digested, err := reference.WithDigest(reference.TrimNamed(name), desc.Target.Digest)
if err != nil { if err != nil {
// This could only happen if digest is invalid, but considering that // This could only happen if digest is invalid, but considering that