From d8a33c81b498a8d165a93cd1e398061989113dee Mon Sep 17 00:00:00 2001 From: zhouhao Date: Tue, 7 Feb 2017 11:35:06 +0800 Subject: [PATCH] manifest.go: add the layers validation type Signed-off-by: zhouhao --- image/manifest.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/image/manifest.go b/image/manifest.go index 169099f..091214c 100644 --- a/image/manifest.go +++ b/image/manifest.go @@ -75,12 +75,22 @@ func findManifest(w walker, d *descriptor) (*manifest, error) { } func (m *manifest) validate(w walker) error { + mediatype := v1.MediaTypeImageLayer if err := m.Config.validate(w, []string{v1.MediaTypeImageConfig}); err != nil { return errors.Wrap(err, "config validation failed") } for _, d := range m.Layers { - if err := d.validate(w, []string{v1.MediaTypeImageLayer}); err != nil { + switch d.MediaType { + case v1.MediaTypeImageLayerGzip: + mediatype = v1.MediaTypeImageLayerGzip + case v1.MediaTypeImageLayerNonDistributable: + mediatype = v1.MediaTypeImageLayerNonDistributable + case v1.MediaTypeImageLayerNonDistributableGzip: + mediatype = v1.MediaTypeImageLayerNonDistributableGzip + } + + if err := d.validate(w, []string{mediatype}); err != nil { return errors.Wrap(err, "layer validation failed") } }