mirror of
https://github.com/containers/skopeo.git
synced 2025-08-11 11:22:05 +00:00
Remove a special case for failing to list tags in (skopeo sync)
- It's unclear why it exists in the first place - Looking at callers of imagesToCopyFromRepo, the only caller of this: either the input is a single repo, in which case the failure to list tags clearly results in a no-op and a "No images to sync" fatal failure ... - ... or the input is YAML, and in that case the caller is already skipping the repo on a failure. Either way, it's unclear why we would have a special "Registry disallows tag retrieval" error special case instead of the generic text. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
parent
955a59c864
commit
9724da1ff2
@ -216,16 +216,8 @@ func getImageTags(ctx context.Context, sysCtx *types.SystemContext, repoRef refe
|
|||||||
}
|
}
|
||||||
tags, err := docker.GetRepositoryTags(ctx, sysCtx, dockerRef)
|
tags, err := docker.GetRepositoryTags(ctx, sysCtx, dockerRef)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
var unauthorizedForCredentials docker.ErrUnauthorizedForCredentials
|
|
||||||
if errors.As(err, &unauthorizedForCredentials) {
|
|
||||||
// Some registries may decide to block the "list all tags" endpoint.
|
|
||||||
// Gracefully allow the sync to continue in this case.
|
|
||||||
logrus.Warnf("Registry disallows tag list retrieval: %s", err)
|
|
||||||
tags = nil
|
|
||||||
} else {
|
|
||||||
return nil, fmt.Errorf("Error determining repository tags for image %s: %w", name, err)
|
return nil, fmt.Errorf("Error determining repository tags for image %s: %w", name, err)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return tags, nil
|
return tags, nil
|
||||||
}
|
}
|
||||||
|
@ -534,7 +534,7 @@ func (s *SyncSuite) TestFailsNoSourceImages(c *check.C) {
|
|||||||
assertSkopeoFails(c, ".*No images to sync found in .*",
|
assertSkopeoFails(c, ".*No images to sync found in .*",
|
||||||
"sync", "--scoped", "--dest-tls-verify=false", "--src", "dir", "--dest", "docker", tmpDir, v2DockerRegistryURL)
|
"sync", "--scoped", "--dest-tls-verify=false", "--src", "dir", "--dest", "docker", tmpDir, v2DockerRegistryURL)
|
||||||
|
|
||||||
assertSkopeoFails(c, ".*No images to sync found in .*",
|
assertSkopeoFails(c, ".*Error determining repository tags for repo docker.io/library/hopefully_no_images_will_ever_be_called_like_this: fetching tags list: requested access to the resource is denied.*",
|
||||||
"sync", "--scoped", "--dest-tls-verify=false", "--src", "docker", "--dest", "docker", "hopefully_no_images_will_ever_be_called_like_this", v2DockerRegistryURL)
|
"sync", "--scoped", "--dest-tls-verify=false", "--src", "docker", "--dest", "docker", "hopefully_no_images_will_ever_be_called_like_this", v2DockerRegistryURL)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -557,7 +557,7 @@ func (s *SyncSuite) TestFailsWithDockerSourceUnauthorized(c *check.C) {
|
|||||||
tmpDir := c.MkDir()
|
tmpDir := c.MkDir()
|
||||||
|
|
||||||
//untagged
|
//untagged
|
||||||
assertSkopeoFails(c, ".*Registry disallows tag list retrieval.*",
|
assertSkopeoFails(c, ".*requested access to the resource is denied.*",
|
||||||
"sync", "--scoped", "--src", "docker", "--dest", "dir", repo, tmpDir)
|
"sync", "--scoped", "--src", "docker", "--dest", "dir", repo, tmpDir)
|
||||||
|
|
||||||
//tagged
|
//tagged
|
||||||
|
Loading…
Reference in New Issue
Block a user