Merge pull request #5299 from estesp/refkey-with-name
Add OCI ref.name to unique key in remotes handler
This commit is contained in:
commit
251e3d15de
@ -56,25 +56,32 @@ func WithMediaTypeKeyPrefix(ctx context.Context, mediaType, prefix string) conte
|
|||||||
// used to lookup ongoing processes related to the descriptor. This function
|
// used to lookup ongoing processes related to the descriptor. This function
|
||||||
// may look to the context to namespace the reference appropriately.
|
// may look to the context to namespace the reference appropriately.
|
||||||
func MakeRefKey(ctx context.Context, desc ocispec.Descriptor) string {
|
func MakeRefKey(ctx context.Context, desc ocispec.Descriptor) string {
|
||||||
|
key := desc.Digest.String()
|
||||||
|
if desc.Annotations != nil {
|
||||||
|
if name, ok := desc.Annotations[ocispec.AnnotationRefName]; ok {
|
||||||
|
key = fmt.Sprintf("%s@%s", name, desc.Digest.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if v := ctx.Value(refKeyPrefix{}); v != nil {
|
if v := ctx.Value(refKeyPrefix{}); v != nil {
|
||||||
values := v.(map[string]string)
|
values := v.(map[string]string)
|
||||||
if prefix := values[desc.MediaType]; prefix != "" {
|
if prefix := values[desc.MediaType]; prefix != "" {
|
||||||
return prefix + "-" + desc.Digest.String()
|
return prefix + "-" + key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch mt := desc.MediaType; {
|
switch mt := desc.MediaType; {
|
||||||
case mt == images.MediaTypeDockerSchema2Manifest || mt == ocispec.MediaTypeImageManifest:
|
case mt == images.MediaTypeDockerSchema2Manifest || mt == ocispec.MediaTypeImageManifest:
|
||||||
return "manifest-" + desc.Digest.String()
|
return "manifest-" + key
|
||||||
case mt == images.MediaTypeDockerSchema2ManifestList || mt == ocispec.MediaTypeImageIndex:
|
case mt == images.MediaTypeDockerSchema2ManifestList || mt == ocispec.MediaTypeImageIndex:
|
||||||
return "index-" + desc.Digest.String()
|
return "index-" + key
|
||||||
case images.IsLayerType(mt):
|
case images.IsLayerType(mt):
|
||||||
return "layer-" + desc.Digest.String()
|
return "layer-" + key
|
||||||
case images.IsKnownConfig(mt):
|
case images.IsKnownConfig(mt):
|
||||||
return "config-" + desc.Digest.String()
|
return "config-" + key
|
||||||
default:
|
default:
|
||||||
log.G(ctx).Warnf("reference for unknown type: %s", mt)
|
log.G(ctx).Warnf("reference for unknown type: %s", mt)
|
||||||
return "unknown-" + desc.Digest.String()
|
return "unknown-" + key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user