mirror of
https://github.com/containers/podman.git
synced 2025-06-29 06:57:13 +08:00
Remove the :// end from DockerTransport
(... but keep it in DefaultTransport, which remains irregular.) This makes DockerTransport consistent with the others, and much more importantly, allows several instances to do > imgRef.Transport().Name() == DockerTransport instead of the current > strings.HasPrefix(DockerTransport, imgRef.Transport().Name()) , which currently works but is pretty nonsensical (it does not check the "docker://" prefix against the _full reference_, but it checks the _transport name_ as a prefix of "docker://", i.e. a transport named "d" would be accepted. Should not change behavior, because the only currently existing transport which has a name that is a prefix of "docker://" is c/image/docker.Transport (but does not add unit tests). Signed-off-by: Miloslav Trmač <mitr@redhat.com> Closes: #1176 Approved by: rhatdan
This commit is contained in:

committed by
Atomic Bot

parent
9770ed257e
commit
190e074459
@ -551,7 +551,7 @@ func (i *Image) PushImage(ctx context.Context, destination, manifestMIMEType, au
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
copyOptions := getCopyOptions(writer, signaturePolicyPath, nil, dockerRegistryOptions, signingOptions, authFile, manifestMIMEType, forceCompress, additionalDockerArchiveTags)
|
copyOptions := getCopyOptions(writer, signaturePolicyPath, nil, dockerRegistryOptions, signingOptions, authFile, manifestMIMEType, forceCompress, additionalDockerArchiveTags)
|
||||||
if strings.HasPrefix(DockerTransport, dest.Transport().Name()) {
|
if dest.Transport().Name() == DockerTransport {
|
||||||
imgRef, err := reference.Parse(dest.DockerReference().String())
|
imgRef, err := reference.Parse(dest.DockerReference().String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -38,14 +38,14 @@ var (
|
|||||||
// and creating a filesystem image
|
// and creating a filesystem image
|
||||||
TarballTransport = tarball.Transport.Name()
|
TarballTransport = tarball.Transport.Name()
|
||||||
// DockerTransport is the transport for docker registries
|
// DockerTransport is the transport for docker registries
|
||||||
DockerTransport = docker.Transport.Name() + "://"
|
DockerTransport = docker.Transport.Name()
|
||||||
// AtomicTransport is the transport for atomic registries
|
// AtomicTransport is the transport for atomic registries
|
||||||
AtomicTransport = "atomic"
|
AtomicTransport = "atomic"
|
||||||
// DefaultTransport is a prefix that we apply to an image name
|
// DefaultTransport is a prefix that we apply to an image name
|
||||||
// NOTE: This is a string prefix, not actually a transport name usable for transports.Get();
|
// NOTE: This is a string prefix, not actually a transport name usable for transports.Get();
|
||||||
// and because syntaxes of image names are transport-dependent, the prefix is not really interchangeable;
|
// and because syntaxes of image names are transport-dependent, the prefix is not really interchangeable;
|
||||||
// each user implicitly assumes the appended string is a Docker-like reference.
|
// each user implicitly assumes the appended string is a Docker-like reference.
|
||||||
DefaultTransport = DockerTransport
|
DefaultTransport = DockerTransport + "://"
|
||||||
// DefaultLocalRepo is the default local repository for local image operations
|
// DefaultLocalRepo is the default local repository for local image operations
|
||||||
// Remote pulls will still use defined registries
|
// Remote pulls will still use defined registries
|
||||||
DefaultLocalRepo = "localhost"
|
DefaultLocalRepo = "localhost"
|
||||||
@ -206,7 +206,7 @@ func (i *Image) pullImage(ctx context.Context, writer io.Writer, authfile, signa
|
|||||||
var images []string
|
var images []string
|
||||||
for _, imageInfo := range pullRefPairs {
|
for _, imageInfo := range pullRefPairs {
|
||||||
copyOptions := getCopyOptions(writer, signaturePolicyPath, dockerOptions, nil, signingOptions, authfile, "", false, nil)
|
copyOptions := getCopyOptions(writer, signaturePolicyPath, dockerOptions, nil, signingOptions, authfile, "", false, nil)
|
||||||
if strings.HasPrefix(DockerTransport, imageInfo.srcRef.Transport().Name()) {
|
if imageInfo.srcRef.Transport().Name() == DockerTransport {
|
||||||
imgRef, err := reference.Parse(imageInfo.srcRef.DockerReference().String())
|
imgRef, err := reference.Parse(imageInfo.srcRef.DockerReference().String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -219,7 +219,7 @@ func (i *Image) pullImage(ctx context.Context, writer io.Writer, authfile, signa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Print the following statement only when pulling from a docker or atomic registry
|
// Print the following statement only when pulling from a docker or atomic registry
|
||||||
if writer != nil && (strings.HasPrefix(DockerTransport, imageInfo.srcRef.Transport().Name()) || imageInfo.srcRef.Transport().Name() == AtomicTransport) {
|
if writer != nil && (imageInfo.srcRef.Transport().Name() == DockerTransport || imageInfo.srcRef.Transport().Name() == AtomicTransport) {
|
||||||
io.WriteString(writer, fmt.Sprintf("Trying to pull %s...", imageInfo.image))
|
io.WriteString(writer, fmt.Sprintf("Trying to pull %s...", imageInfo.image))
|
||||||
}
|
}
|
||||||
if err = cp.Image(ctx, policyContext, imageInfo.dstRef, imageInfo.srcRef, copyOptions); err != nil {
|
if err = cp.Image(ctx, policyContext, imageInfo.dstRef, imageInfo.srcRef, copyOptions); err != nil {
|
||||||
|
Reference in New Issue
Block a user