Merge pull request #29828 from vdemeester/integration-deleteContainer-ignore-notfound

Do not fail in `TearDown` if container not found when removing
This commit is contained in:
Sebastiaan van Stijn 2017-01-03 11:35:07 +01:00 committed by GitHub
commit 275d68ab39
4 changed files with 14 additions and 6 deletions

View File

@ -1291,7 +1291,7 @@ func (s *DockerSuite) TestPutContainerArchiveErrSymlinkInVolumeToReadOnlyRootfs(
readOnly: true,
volumes: defaultVolumes(testVol), // Our bind mount is at /vol2
})
defer deleteContainer(cID)
defer deleteContainer(false, cID)
// Attempt to extract to a symlink in the volume which points to a
// directory outside the volume. This should cause an error because the

View File

@ -39,7 +39,7 @@ func setupImageWithTag(c *check.C, tag string) (digest.Digest, error) {
c.Assert(err, checker.IsNil, check.Commentf("image tagging failed: %s", out))
// delete the container as we don't need it any more
err = deleteContainer(containerName)
err = deleteContainer(false, containerName)
c.Assert(err, checker.IsNil)
// push the image

View File

@ -2117,7 +2117,7 @@ func (s *DockerSuite) TestRunDeallocatePortOnMissingIptablesRule(c *check.C) {
if err != nil {
c.Fatal(err, out)
}
if err := deleteContainer(id); err != nil {
if err := deleteContainer(false, id); err != nil {
c.Fatal(err)
}

View File

@ -118,8 +118,16 @@ func newRequestClient(method, endpoint string, data io.Reader, ct, daemon string
return req, client, nil
}
func deleteContainer(container ...string) error {
// FIXME(vdemeester) move this away are remove ignoreNoSuchContainer bool
func deleteContainer(ignoreNoSuchContainer bool, container ...string) error {
result := icmd.RunCommand(dockerBinary, append([]string{"rm", "-fv"}, container...)...)
if ignoreNoSuchContainer && result.Error != nil {
// If the error is "No such container: ..." this means the container doesn't exists anymore,
// we can safely ignore that one.
if strings.Contains(result.Error.Error(), "No such container") {
return nil
}
}
return result.Compare(icmd.Success)
}
@ -138,7 +146,7 @@ func deleteAllContainers(c *check.C) {
c.Assert(err, checker.IsNil, check.Commentf("containers: %v", containers))
if containers != "" {
err = deleteContainer(strings.Split(strings.TrimSpace(containers), "\n")...)
err = deleteContainer(true, strings.Split(strings.TrimSpace(containers), "\n")...)
c.Assert(err, checker.IsNil)
}
}
@ -596,7 +604,7 @@ func (f *remoteFileServer) Close() error {
if f.container == "" {
return nil
}
return deleteContainer(f.container)
return deleteContainer(false, f.container)
}
func newRemoteFileServer(ctx *FakeContext) (*remoteFileServer, error) {