images/archive: use mediatype helpers

Signed-off-by: Bjorn Neergaard <bjorn.neergaard@docker.com>
This commit is contained in:
Bjorn Neergaard 2023-09-27 09:17:03 -06:00
parent bb8a472f24
commit 377c5ca9cd
No known key found for this signature in database

View File

@ -170,8 +170,7 @@ func Export(ctx context.Context, store content.Provider, writer io.Writer, opts
dManifests := map[digest.Digest]*exportManifest{} dManifests := map[digest.Digest]*exportManifest{}
resolvedIndex := map[digest.Digest]digest.Digest{} resolvedIndex := map[digest.Digest]digest.Digest{}
for _, desc := range eo.manifests { for _, desc := range eo.manifests {
switch desc.MediaType { if images.IsManifestType(desc.MediaType) {
case images.MediaTypeDockerSchema2Manifest, ocispec.MediaTypeImageManifest:
mt, ok := dManifests[desc.Digest] mt, ok := dManifests[desc.Digest]
if !ok { if !ok {
// TODO(containerd): Skip if already added // TODO(containerd): Skip if already added
@ -191,7 +190,7 @@ func Export(ctx context.Context, store content.Provider, writer io.Writer, opts
if name != "" { if name != "" {
mt.names = append(mt.names, name) mt.names = append(mt.names, name)
} }
case images.MediaTypeDockerSchema2ManifestList, ocispec.MediaTypeImageIndex: } else if images.IsIndexType(desc.MediaType) {
d, ok := resolvedIndex[desc.Digest] d, ok := resolvedIndex[desc.Digest]
if !ok { if !ok {
if err := desc.Digest.Validate(); err != nil { if err := desc.Digest.Validate(); err != nil {
@ -255,7 +254,7 @@ func Export(ctx context.Context, store content.Provider, writer io.Writer, opts
} }
} }
default: } else {
return fmt.Errorf("only manifests may be exported: %w", errdefs.ErrInvalidArgument) return fmt.Errorf("only manifests may be exported: %w", errdefs.ErrInvalidArgument)
} }
} }