images: provide better error for manifest list match error

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
Tonis Tiigi 2018-06-20 13:43:27 -07:00
parent c1e1f3d6d9
commit 53fe31d6de

View File

@ -131,9 +131,12 @@ func Manifest(ctx context.Context, provider content.Provider, image ocispec.Desc
var ( var (
matcher platforms.Matcher matcher platforms.Matcher
m *ocispec.Manifest m *ocispec.Manifest
p ocispec.Platform
wasIndex bool
) )
if platform != "" { if platform != "" {
p, err := platforms.Parse(platform) var err error
p, err = platforms.Parse(platform)
if err != nil { if err != nil {
return ocispec.Manifest{}, err return ocispec.Manifest{}, err
} }
@ -201,6 +204,8 @@ func Manifest(ctx context.Context, provider content.Provider, image ocispec.Desc
} }
} }
wasIndex = true
return descs, nil return descs, nil
} }
@ -210,7 +215,11 @@ func Manifest(ctx context.Context, provider content.Provider, image ocispec.Desc
} }
if m == nil { if m == nil {
return ocispec.Manifest{}, errors.Wrapf(errdefs.ErrNotFound, "manifest %v", image.Digest) err := errors.Wrapf(errdefs.ErrNotFound, "manifest %v", image.Digest)
if wasIndex {
err = errors.Wrapf(errdefs.ErrNotFound, "no match for current platform %s in manifest %v", platforms.Format(p), image.Digest)
}
return ocispec.Manifest{}, err
} }
return *m, nil return *m, nil