func()

in ecr/fetcher.go [49:80]


func (f *ecrFetcher) Fetch(ctx context.Context, desc ocispec.Descriptor) (io.ReadCloser, error) {
	ctx = log.WithLogger(ctx, log.G(ctx).WithField("desc", desc))
	log.G(ctx).Debug("ecr.fetch")

	// need to do different things based on the media type
	switch desc.MediaType {
	case
		images.MediaTypeDockerSchema1Manifest,
		images.MediaTypeDockerSchema2Manifest,
		images.MediaTypeDockerSchema2ManifestList,
		ocispec.MediaTypeImageIndex,
		ocispec.MediaTypeImageManifest:
		return f.fetchManifest(ctx, desc)
	case
		images.MediaTypeDockerSchema2Layer,
		images.MediaTypeDockerSchema2LayerGzip,
		images.MediaTypeDockerSchema2Config,
		ocispec.MediaTypeImageLayerGzip,
		ocispec.MediaTypeImageLayer,
		ocispec.MediaTypeImageConfig:
		return f.fetchLayer(ctx, desc)
	case
		images.MediaTypeDockerSchema2LayerForeign,
		images.MediaTypeDockerSchema2LayerForeignGzip:
		return f.fetchForeignLayer(ctx, desc)
	default:
		log.G(ctx).
			WithField("media type", desc.MediaType).
			Error("ecr.fetcher: unimplemented media type")
		return nil, unimplemented
	}
}