From 7439f94e22efb5856f9e7216d79e6f523b2651fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Fri, 22 May 2020 02:09:54 +0200 Subject: [PATCH] Remove the repoReference parameter of imagesToCopyFromRepo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is redundant, only used to form a tagged reference, which can be done more safely using reference.WithTag. Also move the *types.SystemContext parameter to the front, as is usual. Should not change behavior, apart from a few error messages. Signed-off-by: Miloslav Trmač --- cmd/skopeo/sync.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/cmd/skopeo/sync.go b/cmd/skopeo/sync.go index 4a9ba16a..37d8de4c 100644 --- a/cmd/skopeo/sync.go +++ b/cmd/skopeo/sync.go @@ -209,18 +209,22 @@ func isTagSpecified(imageName string) (bool, error) { // found in the source repository. // It returns an image reference slice with as many elements as the tags found // and any error encountered. -func imagesToCopyFromRepo(repoReference types.ImageReference, repoName string, sourceCtx *types.SystemContext) ([]types.ImageReference, error) { +func imagesToCopyFromRepo(sys *types.SystemContext, repoReference types.ImageReference) ([]types.ImageReference, error) { var sourceReferences []types.ImageReference - tags, err := getImageTags(context.Background(), sourceCtx, repoReference) + tags, err := getImageTags(context.Background(), sys, repoReference) if err != nil { return sourceReferences, err } + repoRef := repoReference.DockerReference() for _, tag := range tags { - imageAndTag := fmt.Sprintf("%s:%s", repoName, tag) - ref, err := docker.ParseReference(imageAndTag) + taggedRef, err := reference.WithTag(repoRef, tag) if err != nil { - return nil, errors.Wrapf(err, fmt.Sprintf("Cannot obtain a valid image reference for transport %q and reference %q", docker.Transport.Name(), imageAndTag)) + return nil, errors.Wrapf(err, "Error creating a reference for repository %s and tag %q", repoRef.Name(), tag) + } + ref, err := docker.NewReference(taggedRef) + if err != nil { + return nil, errors.Wrapf(err, "Cannot obtain a valid image reference for transport %q and reference %s", docker.Transport.Name(), taggedRef.String()) } sourceReferences = append(sourceReferences, ref) } @@ -305,7 +309,7 @@ func imagesToCopyFromRegistry(registryName string, cfg registrySyncConfig, sourc continue } - sourceReferences, err = imagesToCopyFromRepo(imageRef, repoName, serverCtx) + sourceReferences, err = imagesToCopyFromRepo(serverCtx, imageRef) if err != nil { repoLogger.Error("Error processing repo, skipping") logrus.Error(err) @@ -347,7 +351,7 @@ func imagesToCopyFromRegistry(registryName string, cfg registrySyncConfig, sourc continue } - allSourceReferences, err := imagesToCopyFromRepo(imageRef, repoName, serverCtx) + allSourceReferences, err := imagesToCopyFromRepo(serverCtx, imageRef) if err != nil { repoLogger.Error("Error processing repo, skipping") logrus.Error(err) @@ -403,11 +407,7 @@ func imagesToCopy(source string, transport string, sourceCtx *types.SystemContex break } - desc.TaggedImages, err = imagesToCopyFromRepo( - srcRef, - fmt.Sprintf("//%s", source), - sourceCtx) - + desc.TaggedImages, err = imagesToCopyFromRepo(sourceCtx, srcRef) if err != nil { return descriptors, err }