1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #44208 from thaJeztah/container_cleanup_package_vars

daemon: replaced exported errors with errdefs
This commit is contained in:
Brian Goff 2022-09-30 09:23:36 -07:00 committed by GitHub
commit 02ee154558
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 12 additions and 35 deletions

View file

@ -16,11 +16,6 @@ import (
"github.com/pkg/errors"
)
// ErrExtractPointNotDirectory is used to convey that the operation to extract
// a tar archive to a directory in a container has failed because the specified
// path does not refer to a directory.
var ErrExtractPointNotDirectory = errors.New("extraction point is not a directory")
// ContainerCopy performs a deprecated operation of archiving the resource at
// the specified path in the container identified by the given name.
func (daemon *Daemon) ContainerCopy(name string, res string) (io.ReadCloser, error) {
@ -97,7 +92,7 @@ func (daemon *Daemon) ContainerArchivePath(name string, path string) (content io
// ContainerExtractToDir extracts the given archive to the specified location
// in the filesystem of the container identified by the given name. The given
// path must be of a directory in the container. If it is not, the error will
// be ErrExtractPointNotDirectory. If noOverwriteDirNonDir is true then it will
// be an errdefs.InvalidParameter. If noOverwriteDirNonDir is true then it will
// be an error if unpacking the given content would cause an existing directory
// to be replaced with a non-directory and vice versa.
func (daemon *Daemon) ContainerExtractToDir(name, path string, copyUIDGID, noOverwriteDirNonDir bool, content io.Reader) error {
@ -239,7 +234,7 @@ func (daemon *Daemon) containerArchivePath(container *container.Container, path
// containerExtractToDir extracts the given tar archive to the specified location in the
// filesystem of this container. The given path must be of a directory in the
// container. If it is not, the error will be ErrExtractPointNotDirectory. If
// container. If it is not, the error will be an errdefs.InvalidParameter. If
// noOverwriteDirNonDir is true then it will be an error if unpacking the
// given content would cause an existing directory to be replaced with a non-
// directory and vice versa.
@ -288,7 +283,7 @@ func (daemon *Daemon) containerExtractToDir(container *container.Container, path
}
if !stat.IsDir() {
return ErrExtractPointNotDirectory
return errdefs.InvalidParameter(errors.New("extraction point is not a directory"))
}
// Need to check if the path is in a volume. If it is, it cannot be in a
@ -326,7 +321,7 @@ func (daemon *Daemon) containerExtractToDir(container *container.Container, path
}
if !toVolume && container.HostConfig.ReadonlyRootfs {
return ErrRootFSReadOnly
return errdefs.InvalidParameter(errors.New("container rootfs is marked read-only"))
}
options := daemon.defaultTarCopyOptions(noOverwriteDirNonDir)

View file

@ -5,7 +5,9 @@ package daemon // import "github.com/docker/docker/daemon"
import (
"github.com/docker/docker/container"
"github.com/docker/docker/errdefs"
volumemounts "github.com/docker/docker/volume/mounts"
"github.com/pkg/errors"
)
// checkIfPathIsInAVolume checks if the path is in a volume. If it is, it
@ -19,7 +21,7 @@ func checkIfPathIsInAVolume(container *container.Container, absPath string) (boo
if mnt.RW {
break
}
return false, ErrVolumeReadonly
return false, errdefs.InvalidParameter(errors.New("mounted volume is marked read-only"))
}
}
return toVolume, nil

View file

@ -26,13 +26,6 @@ import (
"github.com/sirupsen/logrus"
)
var (
// ErrRootFSReadOnly is returned when a container
// rootfs is marked readonly.
ErrRootFSReadOnly = errors.New("container rootfs is marked read-only")
getPortMapInfo = getSandboxPortMapInfo
)
func (daemon *Daemon) getDNSSearchSettings(container *container.Container) []string {
if len(container.HostConfig.DNSSearch) > 0 {
return container.HostConfig.DNSSearch

View file

@ -883,7 +883,7 @@ func buildCreateEndpointOptions(c *container.Container, n libnetwork.Network, ep
}
// Port-mapping rules belong to the container & applicable only to non-internal networks
portmaps := getSandboxPortMapInfo(sb)
portmaps := getPortMapInfo(sb)
if n.Info().Internal() || len(portmaps) > 0 {
return createOptions, nil
}
@ -957,8 +957,8 @@ func buildCreateEndpointOptions(c *container.Container, n libnetwork.Network, ep
return createOptions, nil
}
// getSandboxPortMapInfo retrieves the current port-mapping programmed for the given sandbox
func getSandboxPortMapInfo(sb libnetwork.Sandbox) nat.PortMap {
// getPortMapInfo retrieves the current port-mapping programmed for the given sandbox
func getPortMapInfo(sb libnetwork.Sandbox) nat.PortMap {
pm := nat.PortMap{}
if sb == nil {
return pm

View file

@ -21,12 +21,6 @@ import (
"github.com/sirupsen/logrus"
)
var (
// ErrVolumeReadonly is used to signal an error when trying to copy data into
// a volume mount that is not writable.
ErrVolumeReadonly = errors.New("mounted volume is marked read-only")
)
type mounts []container.Mount
// Len returns the number of mounts. Used in sorting.

View file

@ -411,9 +411,7 @@ func (s *DockerCLICpSuite) TestCpToErrReadOnlyRootfs(c *testing.T) {
dstPath := containerCpPath(containerID, "/root/shouldNotExist")
err := runDockerCp(c, srcPath, dstPath)
assert.ErrorContains(c, err, "")
assert.Assert(c, isCpCannotCopyReadOnly(err), "expected ErrContainerRootfsReadonly error, but got %T: %s", err, err)
assert.ErrorContains(c, err, "marked read-only")
assert.NilError(c, containerStartOutputEquals(c, containerID, ""), "dstPath should not have existed")
}
@ -436,8 +434,7 @@ func (s *DockerCLICpSuite) TestCpToErrReadOnlyVolume(c *testing.T) {
dstPath := containerCpPath(containerID, "/vol_ro/shouldNotExist")
err := runDockerCp(c, srcPath, dstPath)
assert.ErrorContains(c, err, "")
assert.ErrorContains(c, err, "marked read-only")
assert.Assert(c, isCpCannotCopyReadOnly(err), "expected ErrVolumeReadonly error, but got %T: %s", err, err)
assert.NilError(c, containerStartOutputEquals(c, containerID, ""), "dstPath should not have existed")
}

View file

@ -232,10 +232,6 @@ func isCpCannotCopyDir(err error) bool {
return strings.Contains(err.Error(), archive.ErrCannotCopyDir.Error())
}
func isCpCannotCopyReadOnly(err error) bool {
return strings.Contains(err.Error(), "marked read-only")
}
func fileContentEquals(c *testing.T, filename, contents string) error {
c.Helper()