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:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user