1
0
mirror of https://github.com/openshift/image-registry.git synced 2026-02-05 09:45:55 +01:00

pkg/testutil: populate DockerImageManifests on CreateImage

This commit is contained in:
Flavian Missi
2023-01-25 16:09:07 +01:00
parent d3643306b1
commit d76813960c

View File

@@ -6,7 +6,10 @@ import (
"sort"
"sync"
"github.com/docker/distribution"
dcontext "github.com/docker/distribution/context"
"github.com/docker/distribution/manifest/manifestlist"
v1 "github.com/opencontainers/image-spec/specs-go/v1"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -61,6 +64,29 @@ func (fos *FakeOpenShift) CreateImage(image *imageapiv1.Image) (*imageapiv1.Imag
return nil, errors.NewAlreadyExists(imageapiv1.Resource("images"), image.Name)
}
if image.DockerImageManifestMediaType == manifestlist.MediaTypeManifestList || image.DockerImageManifestMediaType == v1.MediaTypeImageIndex {
manifest, _, err := distribution.UnmarshalManifest(
image.DockerImageManifestMediaType,
[]byte(image.DockerImageManifest),
)
if err != nil {
return nil, err
}
subManifests := []imageapiv1.ImageManifest{}
for _, desc := range manifest.References() {
subMan := imageapiv1.ImageManifest{
Digest: desc.Digest.String(),
MediaType: desc.MediaType,
ManifestSize: desc.Size,
Architecture: "",
OS: "",
}
subManifests = append(subManifests, subMan)
}
image.DockerImageManifests = subManifests
}
fos.images[image.Name] = *image
fos.logger.Debugf("(*FakeOpenShift).images[%q] created", image.Name)