Merge pull request #2520 from ywk253100/ignore_path_not_found_error
Ignore path not found error when look up tagsmaster
						commit
						13076371a6
					
				|  | @ -122,17 +122,20 @@ func (ts *tagStore) Untag(ctx context.Context, tag string) error { | ||||||
| 		name: ts.repository.Named().Name(), | 		name: ts.repository.Named().Name(), | ||||||
| 		tag:  tag, | 		tag:  tag, | ||||||
| 	}) | 	}) | ||||||
| 
 | 	if err != nil { | ||||||
| 	switch err.(type) { |  | ||||||
| 	case storagedriver.PathNotFoundError: |  | ||||||
| 		return distribution.ErrTagUnknown{Tag: tag} |  | ||||||
| 	case nil: |  | ||||||
| 		break |  | ||||||
| 	default: |  | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return ts.blobStore.driver.Delete(ctx, tagPath) | 	if err := ts.blobStore.driver.Delete(ctx, tagPath); err != nil { | ||||||
|  | 		switch err.(type) { | ||||||
|  | 		case storagedriver.PathNotFoundError: | ||||||
|  | 			return nil // Untag is idempotent, we don't care if it didn't exist
 | ||||||
|  | 		default: | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // linkedBlobStore returns the linkedBlobStore for the named tag, allowing one
 | // linkedBlobStore returns the linkedBlobStore for the named tag, allowing one
 | ||||||
|  | @ -179,6 +182,10 @@ func (ts *tagStore) Lookup(ctx context.Context, desc distribution.Descriptor) ([ | ||||||
| 		tagLinkPath, err := pathFor(tagLinkPathSpec) | 		tagLinkPath, err := pathFor(tagLinkPathSpec) | ||||||
| 		tagDigest, err := ts.blobStore.readlink(ctx, tagLinkPath) | 		tagDigest, err := ts.blobStore.readlink(ctx, tagLinkPath) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | 			switch err.(type) { | ||||||
|  | 			case storagedriver.PathNotFoundError: | ||||||
|  | 				continue | ||||||
|  | 			} | ||||||
| 			return nil, err | 			return nil, err | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -84,8 +84,8 @@ func TestTagStoreUnTag(t *testing.T) { | ||||||
| 	desc := distribution.Descriptor{Digest: "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"} | 	desc := distribution.Descriptor{Digest: "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"} | ||||||
| 
 | 
 | ||||||
| 	err := tags.Untag(ctx, "latest") | 	err := tags.Untag(ctx, "latest") | ||||||
| 	if err == nil { | 	if err != nil { | ||||||
| 		t.Errorf("Expected error untagging non-existant tag") | 		t.Error(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	err = tags.Tag(ctx, "latest", desc) | 	err = tags.Tag(ctx, "latest", desc) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue