@@ -341,19 +341,16 @@ func (p *puller) pullTag(ctx context.Context, ref reference.Named, platform *oci
341341 dgst digest.Digest
342342 mt string
343343 size int64
344- tagged reference.NamedTagged
345- isTagged bool
346344 )
347345 if digested , isDigested := ref .(reference.Canonical ); isDigested {
348346 dgst = digested .Digest ()
349347 tagOrDigest = digested .String ()
350- } else if tagged , isTagged = ref .(reference.NamedTagged ); isTagged {
348+ } else if tagged , isTagged : = ref .(reference.NamedTagged ); isTagged {
351349 tagService := p .repo .Tags (ctx )
352350 desc , err := tagService .Get (ctx , tagged .Tag ())
353351 if err != nil {
354352 return false , err
355353 }
356-
357354 dgst = desc .Digest
358355 tagOrDigest = tagged .Tag ()
359356 mt = desc .MediaType
@@ -367,43 +364,13 @@ func (p *puller) pullTag(ctx context.Context, ref reference.Named, platform *oci
367364 "remote" : ref ,
368365 }))
369366
370- desc := ocispec.Descriptor {
367+ manifest , err := p . manifestStore . Get ( ctx , ocispec.Descriptor {
371368 MediaType : mt ,
372369 Digest : dgst ,
373370 Size : size ,
374- }
375-
376- manifest , err := p .manifestStore .Get (ctx , desc , ref )
371+ }, ref )
377372 if err != nil {
378- if isTagged && isNotFound (errors .Cause (err )) {
379- log .G (ctx ).WithField ("ref" , ref ).WithError (err ).Debug ("Falling back to pull manifest by tag" )
380-
381- const msg = `%s Failed to pull manifest by the resolved digest. This registry does not
382- appear to conform to the distribution registry specification; falling back to
383- pull by tag. This fallback is DEPRECATED, and will be removed in a future
384- release. Please contact admins of %s. %s
385- `
386-
387- warnEmoji := "\U000026A0 \U0000FE0F "
388- progress .Messagef (p .config .ProgressOutput , "WARNING" , msg , warnEmoji , p .endpoint .URL , warnEmoji )
389-
390- // Fetch by tag worked, but fetch by digest didn't.
391- // This is a broken registry implementation.
392- // We'll fallback to the old behavior and get the manifest by tag.
393- var ms distribution.ManifestService
394- ms , err = p .repo .Manifests (ctx )
395- if err != nil {
396- return false , err
397- }
398-
399- manifest , err = ms .Get (ctx , "" , distribution .WithTag (tagged .Tag ()))
400- if err != nil {
401- err = errors .Wrap (err , "error after falling back to get manifest by tag" )
402- }
403- }
404- if err != nil {
405- return false , err
406- }
373+ return false , err
407374 }
408375
409376 if manifest == nil {
@@ -754,12 +721,11 @@ func (p *puller) pullManifestList(ctx context.Context, ref reference.Named, mfst
754721 return "" , "" , err
755722 }
756723
757- desc := ocispec.Descriptor {
724+ manifest , err := p . manifestStore . Get ( ctx , ocispec.Descriptor {
758725 Digest : match .Digest ,
759726 Size : match .Size ,
760727 MediaType : match .MediaType ,
761- }
762- manifest , err := p .manifestStore .Get (ctx , desc , ref )
728+ }, ref )
763729 if err != nil {
764730 return "" , "" , err
765731 }
0 commit comments