Skip to content

Commit 87afda3

Browse files
authored
Merge pull request moby#3879 from jedevc/testutil-readimages-standalone
testutil: update ReadImages to fallback to reading manifest
2 parents 77e4c5a + a56e654 commit 87afda3

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

util/testutil/imageinfo.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/containerd/containerd/images"
99
"github.com/containerd/containerd/platforms"
1010
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
11+
"github.com/pkg/errors"
1112
)
1213

1314
type ImageInfo struct {
@@ -66,6 +67,15 @@ func ReadImages(ctx context.Context, p content.Provider, desc ocispecs.Descripto
6667
if err := json.Unmarshal(dt, &idx.Index); err != nil {
6768
return nil, err
6869
}
70+
if !images.IsIndexType(idx.Index.MediaType) {
71+
img, err := ReadImage(ctx, p, desc)
72+
if err != nil {
73+
return nil, err
74+
}
75+
img.descPlatform = platforms.Format(img.Img.Platform)
76+
idx.Images = append(idx.Images, img)
77+
return idx, nil
78+
}
6979

7080
for _, m := range idx.Index.Manifests {
7181
img, err := ReadImage(ctx, p, m)
@@ -88,6 +98,9 @@ func ReadImage(ctx context.Context, p content.Provider, desc ocispecs.Descriptor
8898
if err := json.Unmarshal(dt, &ii.Manifest); err != nil {
8999
return nil, err
90100
}
101+
if !images.IsManifestType(ii.Manifest.MediaType) {
102+
return nil, errors.Errorf("invalid manifest type %s", ii.Manifest.MediaType)
103+
}
91104

92105
dt, err = content.ReadBlob(ctx, p, ii.Manifest.Config)
93106
if err != nil {

0 commit comments

Comments
 (0)