fix manifest revision search, closes #1535

Signed-off-by: 姜继忠 <jizhong.jiangjz@alibaba-inc.com>
This commit is contained in:
姜继忠 2016-03-16 14:12:56 +08:00
parent d06d6d3b09
commit 92a9ee34d4

View file

@ -384,7 +384,7 @@ var _ distribution.BlobDescriptorService = &linkedBlobStatter{}
func (lbs *linkedBlobStatter) Stat(ctx context.Context, dgst digest.Digest) (distribution.Descriptor, error) { func (lbs *linkedBlobStatter) Stat(ctx context.Context, dgst digest.Digest) (distribution.Descriptor, error) {
var ( var (
resolveErr error found bool
target digest.Digest target digest.Digest
) )
@ -395,19 +395,20 @@ func (lbs *linkedBlobStatter) Stat(ctx context.Context, dgst digest.Digest) (dis
target, err = lbs.resolveWithLinkFunc(ctx, dgst, linkPathFn) target, err = lbs.resolveWithLinkFunc(ctx, dgst, linkPathFn)
if err == nil { if err == nil {
found = true
break // success! break // success!
} }
switch err := err.(type) { switch err := err.(type) {
case driver.PathNotFoundError: case driver.PathNotFoundError:
resolveErr = distribution.ErrBlobUnknown // move to the next linkPathFn, saving the error // do nothing, just move to the next linkPathFn
default: default:
return distribution.Descriptor{}, err return distribution.Descriptor{}, err
} }
} }
if resolveErr != nil { if !found {
return distribution.Descriptor{}, resolveErr return distribution.Descriptor{}, distribution.ErrBlobUnknown
} }
if target != dgst { if target != dgst {