Remove the repoReference parameter of imagesToCopyFromRepo

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č <mitr@redhat.com>
This commit is contained in:
Miloslav Trmač 2020-05-22 02:09:54 +02:00 committed by Valentin Rothberg
parent 443380731e
commit 7439f94e22

View File

@ -209,18 +209,22 @@ func isTagSpecified(imageName string) (bool, error) {
// found in the source repository. // found in the source repository.
// It returns an image reference slice with as many elements as the tags found // It returns an image reference slice with as many elements as the tags found
// and any error encountered. // 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 var sourceReferences []types.ImageReference
tags, err := getImageTags(context.Background(), sourceCtx, repoReference) tags, err := getImageTags(context.Background(), sys, repoReference)
if err != nil { if err != nil {
return sourceReferences, err return sourceReferences, err
} }
repoRef := repoReference.DockerReference()
for _, tag := range tags { for _, tag := range tags {
imageAndTag := fmt.Sprintf("%s:%s", repoName, tag) taggedRef, err := reference.WithTag(repoRef, tag)
ref, err := docker.ParseReference(imageAndTag)
if err != nil { 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) sourceReferences = append(sourceReferences, ref)
} }
@ -305,7 +309,7 @@ func imagesToCopyFromRegistry(registryName string, cfg registrySyncConfig, sourc
continue continue
} }
sourceReferences, err = imagesToCopyFromRepo(imageRef, repoName, serverCtx) sourceReferences, err = imagesToCopyFromRepo(serverCtx, imageRef)
if err != nil { if err != nil {
repoLogger.Error("Error processing repo, skipping") repoLogger.Error("Error processing repo, skipping")
logrus.Error(err) logrus.Error(err)
@ -347,7 +351,7 @@ func imagesToCopyFromRegistry(registryName string, cfg registrySyncConfig, sourc
continue continue
} }
allSourceReferences, err := imagesToCopyFromRepo(imageRef, repoName, serverCtx) allSourceReferences, err := imagesToCopyFromRepo(serverCtx, imageRef)
if err != nil { if err != nil {
repoLogger.Error("Error processing repo, skipping") repoLogger.Error("Error processing repo, skipping")
logrus.Error(err) logrus.Error(err)
@ -403,11 +407,7 @@ func imagesToCopy(source string, transport string, sourceCtx *types.SystemContex
break break
} }
desc.TaggedImages, err = imagesToCopyFromRepo( desc.TaggedImages, err = imagesToCopyFromRepo(sourceCtx, srcRef)
srcRef,
fmt.Sprintf("//%s", source),
sourceCtx)
if err != nil { if err != nil {
return descriptors, err return descriptors, err
} }