mirror of
https://github.com/moby/moby.git
synced 2025-08-01 05:47:11 +03:00
Use check in params so we don't ignore errors
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
@ -44,12 +44,14 @@ func (s *DockerSuite) OnTimeout(c *check.C) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DockerSuite) TearDownTest(c *check.C) {
|
func (s *DockerSuite) TearDownTest(c *check.C) {
|
||||||
unpauseAllContainers()
|
unpauseAllContainers(c)
|
||||||
deleteAllContainers()
|
deleteAllContainers(c)
|
||||||
deleteAllImages()
|
deleteAllImages(c)
|
||||||
deleteAllVolumes()
|
deleteAllVolumes(c)
|
||||||
deleteAllNetworks()
|
deleteAllNetworks(c)
|
||||||
deleteAllPlugins()
|
if daemonPlatform == "linux" {
|
||||||
|
deleteAllPlugins(c)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -346,7 +346,7 @@ func (s *DockerSuite) TestGetStoppedContainerStats(c *check.C) {
|
|||||||
func (s *DockerSuite) TestContainerAPIPause(c *check.C) {
|
func (s *DockerSuite) TestContainerAPIPause(c *check.C) {
|
||||||
// Problematic on Windows as Windows does not support pause
|
// Problematic on Windows as Windows does not support pause
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
out, _ := dockerCmd(c, "run", "-d", "busybox", "sleep", "30")
|
out, _ := dockerCmd(c, "run", "-d", "busybox", "sleep", "30")
|
||||||
ContainerID := strings.TrimSpace(out)
|
ContainerID := strings.TrimSpace(out)
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ func (s *DockerSuite) TestAttachDisconnect(c *check.C) {
|
|||||||
|
|
||||||
func (s *DockerSuite) TestAttachPausedContainer(c *check.C) {
|
func (s *DockerSuite) TestAttachPausedContainer(c *check.C) {
|
||||||
testRequires(c, IsPausable)
|
testRequires(c, IsPausable)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
runSleepingContainer(c, "-d", "--name=test")
|
runSleepingContainer(c, "-d", "--name=test")
|
||||||
dockerCmd(c, "pause", "test")
|
dockerCmd(c, "pause", "test")
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ func (s *DockerSuite) TestCommitWithoutPause(c *check.C) {
|
|||||||
//test commit a paused container should not unpause it after commit
|
//test commit a paused container should not unpause it after commit
|
||||||
func (s *DockerSuite) TestCommitPausedContainer(c *check.C) {
|
func (s *DockerSuite) TestCommitPausedContainer(c *check.C) {
|
||||||
testRequires(c, DaemonIsLinux)
|
testRequires(c, DaemonIsLinux)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
out, _ := dockerCmd(c, "run", "-i", "-d", "busybox")
|
out, _ := dockerCmd(c, "run", "-i", "-d", "busybox")
|
||||||
|
|
||||||
cleanedContainerID := strings.TrimSpace(out)
|
cleanedContainerID := strings.TrimSpace(out)
|
||||||
|
@ -139,7 +139,7 @@ func (s *DockerSuite) TestExecExitStatus(c *check.C) {
|
|||||||
|
|
||||||
func (s *DockerSuite) TestExecPausedContainer(c *check.C) {
|
func (s *DockerSuite) TestExecPausedContainer(c *check.C) {
|
||||||
testRequires(c, IsPausable)
|
testRequires(c, IsPausable)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
|
|
||||||
out, _ := runSleepingContainer(c, "-d", "--name", "testing")
|
out, _ := runSleepingContainer(c, "-d", "--name", "testing")
|
||||||
ContainerID := strings.TrimSpace(out)
|
ContainerID := strings.TrimSpace(out)
|
||||||
@ -388,7 +388,7 @@ func (s *DockerSuite) TestRunMutableNetworkFiles(c *check.C) {
|
|||||||
// Not applicable on Windows to Windows CI.
|
// Not applicable on Windows to Windows CI.
|
||||||
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
testRequires(c, SameHostDaemon, DaemonIsLinux)
|
||||||
for _, fn := range []string{"resolv.conf", "hosts"} {
|
for _, fn := range []string{"resolv.conf", "hosts"} {
|
||||||
deleteAllContainers()
|
deleteAllContainers(c)
|
||||||
|
|
||||||
content, err := runCommandAndReadContainerFile(fn, exec.Command(dockerBinary, "run", "-d", "--name", "c1", "busybox", "sh", "-c", fmt.Sprintf("echo success >/etc/%s && top", fn)))
|
content, err := runCommandAndReadContainerFile(fn, exec.Command(dockerBinary, "run", "-d", "--name", "c1", "busybox", "sh", "-c", fmt.Sprintf("echo success >/etc/%s && top", fn)))
|
||||||
c.Assert(err, checker.IsNil)
|
c.Assert(err, checker.IsNil)
|
||||||
|
@ -54,7 +54,7 @@ func (s *DockerSuite) TestInspectDefault(c *check.C) {
|
|||||||
|
|
||||||
func (s *DockerSuite) TestInspectStatus(c *check.C) {
|
func (s *DockerSuite) TestInspectStatus(c *check.C) {
|
||||||
if daemonPlatform != "windows" {
|
if daemonPlatform != "windows" {
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
}
|
}
|
||||||
out, _ := runSleepingContainer(c, "-d")
|
out, _ := runSleepingContainer(c, "-d")
|
||||||
out = strings.TrimSpace(out)
|
out = strings.TrimSpace(out)
|
||||||
|
@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
func (s *DockerSuite) TestPause(c *check.C) {
|
func (s *DockerSuite) TestPause(c *check.C) {
|
||||||
testRequires(c, IsPausable)
|
testRequires(c, IsPausable)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
|
|
||||||
name := "testeventpause"
|
name := "testeventpause"
|
||||||
runSleepingContainer(c, "-d", "--name", name)
|
runSleepingContainer(c, "-d", "--name", name)
|
||||||
@ -31,7 +31,7 @@ func (s *DockerSuite) TestPause(c *check.C) {
|
|||||||
|
|
||||||
func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) {
|
func (s *DockerSuite) TestPauseMultipleContainers(c *check.C) {
|
||||||
testRequires(c, IsPausable)
|
testRequires(c, IsPausable)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
|
|
||||||
containers := []string{
|
containers := []string{
|
||||||
"testpausewithmorecontainers1",
|
"testpausewithmorecontainers1",
|
||||||
|
@ -96,7 +96,7 @@ func (s *DockerSuite) TestStartRecordError(c *check.C) {
|
|||||||
func (s *DockerSuite) TestStartPausedContainer(c *check.C) {
|
func (s *DockerSuite) TestStartPausedContainer(c *check.C) {
|
||||||
// Windows does not support pausing containers
|
// Windows does not support pausing containers
|
||||||
testRequires(c, IsPausable)
|
testRequires(c, IsPausable)
|
||||||
defer unpauseAllContainers()
|
defer unpauseAllContainers(c)
|
||||||
|
|
||||||
runSleepingContainer(c, "-d", "--name", "testing")
|
runSleepingContainer(c, "-d", "--name", "testing")
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
volumetypes "github.com/docker/docker/api/types/volume"
|
volumetypes "github.com/docker/docker/api/types/volume"
|
||||||
"github.com/docker/docker/opts"
|
"github.com/docker/docker/opts"
|
||||||
"github.com/docker/docker/pkg/httputils"
|
"github.com/docker/docker/pkg/httputils"
|
||||||
|
"github.com/docker/docker/pkg/integration/checker"
|
||||||
icmd "github.com/docker/docker/pkg/integration/cmd"
|
icmd "github.com/docker/docker/pkg/integration/cmd"
|
||||||
"github.com/docker/docker/pkg/ioutils"
|
"github.com/docker/docker/pkg/ioutils"
|
||||||
"github.com/docker/docker/pkg/stringutils"
|
"github.com/docker/docker/pkg/stringutils"
|
||||||
@ -245,29 +246,20 @@ func getAllContainers() (string, error) {
|
|||||||
return out, err
|
return out, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteAllContainers() error {
|
func deleteAllContainers(c *check.C) {
|
||||||
containers, err := getAllContainers()
|
containers, err := getAllContainers()
|
||||||
if err != nil {
|
c.Assert(err, checker.IsNil, check.Commentf("containers: %v", containers))
|
||||||
fmt.Println(containers)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if containers == "" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
err = deleteContainer(strings.Split(strings.TrimSpace(containers), "\n")...)
|
if containers != "" {
|
||||||
if err != nil {
|
err = deleteContainer(strings.Split(strings.TrimSpace(containers), "\n")...)
|
||||||
fmt.Println(err.Error())
|
c.Assert(err, checker.IsNil)
|
||||||
}
|
}
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteAllNetworks() error {
|
func deleteAllNetworks(c *check.C) {
|
||||||
networks, err := getAllNetworks()
|
networks, err := getAllNetworks()
|
||||||
if err != nil {
|
c.Assert(err, check.IsNil)
|
||||||
return err
|
var errs []string
|
||||||
}
|
|
||||||
var errors []string
|
|
||||||
for _, n := range networks {
|
for _, n := range networks {
|
||||||
if n.Name == "bridge" || n.Name == "none" || n.Name == "host" {
|
if n.Name == "bridge" || n.Name == "none" || n.Name == "host" {
|
||||||
continue
|
continue
|
||||||
@ -278,17 +270,14 @@ func deleteAllNetworks() error {
|
|||||||
}
|
}
|
||||||
status, b, err := sockRequest("DELETE", "/networks/"+n.Name, nil)
|
status, b, err := sockRequest("DELETE", "/networks/"+n.Name, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errors = append(errors, err.Error())
|
errs = append(errs, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if status != http.StatusNoContent {
|
if status != http.StatusNoContent {
|
||||||
errors = append(errors, fmt.Sprintf("error deleting network %s: %s", n.Name, string(b)))
|
errs = append(errs, fmt.Sprintf("error deleting network %s: %s", n.Name, string(b)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(errors) > 0 {
|
c.Assert(errs, checker.HasLen, 0, check.Commentf(strings.Join(errs, "\n")))
|
||||||
return fmt.Errorf(strings.Join(errors, "\n"))
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAllNetworks() ([]types.NetworkResource, error) {
|
func getAllNetworks() ([]types.NetworkResource, error) {
|
||||||
@ -303,26 +292,26 @@ func getAllNetworks() ([]types.NetworkResource, error) {
|
|||||||
return networks, nil
|
return networks, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteAllPlugins() error {
|
func deleteAllPlugins(c *check.C) {
|
||||||
plugins, err := getAllPlugins()
|
plugins, err := getAllPlugins()
|
||||||
if err != nil {
|
c.Assert(err, checker.IsNil)
|
||||||
return err
|
var errs []string
|
||||||
}
|
|
||||||
var errors []string
|
|
||||||
for _, p := range plugins {
|
for _, p := range plugins {
|
||||||
status, b, err := sockRequest("DELETE", "/plugins/"+p.Name+":"+p.Tag+"?force=1", nil)
|
pluginName := p.Name
|
||||||
|
tag := p.Tag
|
||||||
|
if tag == "" {
|
||||||
|
tag = "latest"
|
||||||
|
}
|
||||||
|
status, b, err := sockRequest("DELETE", "/plugins/"+pluginName+":"+tag+"?force=1", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errors = append(errors, err.Error())
|
errs = append(errs, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if status != http.StatusNoContent {
|
if status != http.StatusOK {
|
||||||
errors = append(errors, fmt.Sprintf("error deleting plugin %s: %s", p.Name, string(b)))
|
errs = append(errs, fmt.Sprintf("error deleting plugin %s: %s", p.Name, string(b)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(errors) > 0 {
|
c.Assert(errs, checker.HasLen, 0, check.Commentf(strings.Join(errs, "\n")))
|
||||||
return fmt.Errorf(strings.Join(errors, "\n"))
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAllPlugins() (types.PluginsListResponse, error) {
|
func getAllPlugins() (types.PluginsListResponse, error) {
|
||||||
@ -337,26 +326,21 @@ func getAllPlugins() (types.PluginsListResponse, error) {
|
|||||||
return plugins, nil
|
return plugins, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteAllVolumes() error {
|
func deleteAllVolumes(c *check.C) {
|
||||||
volumes, err := getAllVolumes()
|
volumes, err := getAllVolumes()
|
||||||
if err != nil {
|
c.Assert(err, checker.IsNil)
|
||||||
return err
|
var errs []string
|
||||||
}
|
|
||||||
var errors []string
|
|
||||||
for _, v := range volumes {
|
for _, v := range volumes {
|
||||||
status, b, err := sockRequest("DELETE", "/volumes/"+v.Name, nil)
|
status, b, err := sockRequest("DELETE", "/volumes/"+v.Name, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errors = append(errors, err.Error())
|
errs = append(errs, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if status != http.StatusNoContent {
|
if status != http.StatusNoContent {
|
||||||
errors = append(errors, fmt.Sprintf("error deleting volume %s: %s", v.Name, string(b)))
|
errs = append(errs, fmt.Sprintf("error deleting volume %s: %s", v.Name, string(b)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(errors) > 0 {
|
c.Assert(errs, checker.HasLen, 0, check.Commentf(strings.Join(errs, "\n")))
|
||||||
return fmt.Errorf(strings.Join(errors, "\n"))
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAllVolumes() ([]*types.Volume, error) {
|
func getAllVolumes() ([]*types.Volume, error) {
|
||||||
@ -373,13 +357,11 @@ func getAllVolumes() ([]*types.Volume, error) {
|
|||||||
|
|
||||||
var protectedImages = map[string]struct{}{}
|
var protectedImages = map[string]struct{}{}
|
||||||
|
|
||||||
func deleteAllImages() error {
|
func deleteAllImages(c *check.C) {
|
||||||
cmd := exec.Command(dockerBinary, "images")
|
cmd := exec.Command(dockerBinary, "images")
|
||||||
cmd.Env = appendBaseEnv(true)
|
cmd.Env = appendBaseEnv(true)
|
||||||
out, err := cmd.CombinedOutput()
|
out, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
c.Assert(err, checker.IsNil)
|
||||||
return err
|
|
||||||
}
|
|
||||||
lines := strings.Split(string(out), "\n")[1:]
|
lines := strings.Split(string(out), "\n")[1:]
|
||||||
var imgs []string
|
var imgs []string
|
||||||
for _, l := range lines {
|
for _, l := range lines {
|
||||||
@ -389,21 +371,16 @@ func deleteAllImages() error {
|
|||||||
fields := strings.Fields(l)
|
fields := strings.Fields(l)
|
||||||
imgTag := fields[0] + ":" + fields[1]
|
imgTag := fields[0] + ":" + fields[1]
|
||||||
if _, ok := protectedImages[imgTag]; !ok {
|
if _, ok := protectedImages[imgTag]; !ok {
|
||||||
if fields[0] == "<none>" {
|
if fields[0] == "<none>" || fields[1] == "<none>" {
|
||||||
imgs = append(imgs, fields[2])
|
imgs = append(imgs, fields[2])
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
imgs = append(imgs, imgTag)
|
imgs = append(imgs, imgTag)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(imgs) == 0 {
|
if len(imgs) != 0 {
|
||||||
return nil
|
dockerCmd(c, append([]string{"rmi", "-f"}, imgs...)...)
|
||||||
}
|
}
|
||||||
args := append([]string{"rmi", "-f"}, imgs...)
|
|
||||||
if err := exec.Command(dockerBinary, args...).Run(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getPausedContainers() (string, error) {
|
func getPausedContainers() (string, error) {
|
||||||
@ -428,28 +405,21 @@ func getSliceOfPausedContainers() ([]string, error) {
|
|||||||
return []string{out}, err
|
return []string{out}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func unpauseContainer(container string) error {
|
func unpauseContainer(c *check.C, container string) {
|
||||||
return icmd.RunCommand(dockerBinary, "unpause", container).Error
|
dockerCmd(c, "unpause", container)
|
||||||
}
|
}
|
||||||
|
|
||||||
func unpauseAllContainers() error {
|
func unpauseAllContainers(c *check.C) {
|
||||||
containers, err := getPausedContainers()
|
containers, err := getPausedContainers()
|
||||||
if err != nil {
|
c.Assert(err, checker.IsNil, check.Commentf("containers: %v", containers))
|
||||||
fmt.Println(containers)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
containers = strings.Replace(containers, "\n", " ", -1)
|
containers = strings.Replace(containers, "\n", " ", -1)
|
||||||
containers = strings.Trim(containers, " ")
|
containers = strings.Trim(containers, " ")
|
||||||
containerList := strings.Split(containers, " ")
|
containerList := strings.Split(containers, " ")
|
||||||
|
|
||||||
for _, value := range containerList {
|
for _, value := range containerList {
|
||||||
if err = unpauseContainer(value); err != nil {
|
unpauseContainer(c, value)
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteImages(images ...string) error {
|
func deleteImages(images ...string) error {
|
||||||
@ -490,10 +460,7 @@ func dockerCmdWithStdoutStderr(c *check.C, args ...string) (string, string, int)
|
|||||||
}
|
}
|
||||||
|
|
||||||
result := icmd.RunCommand(dockerBinary, args...)
|
result := icmd.RunCommand(dockerBinary, args...)
|
||||||
// TODO: why is c ever nil?
|
c.Assert(result, icmd.Matches, icmd.Success)
|
||||||
if c != nil {
|
|
||||||
c.Assert(result, icmd.Matches, icmd.Success)
|
|
||||||
}
|
|
||||||
return result.Stdout(), result.Stderr(), result.ExitCode
|
return result.Stdout(), result.Stderr(), result.ExitCode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user