mirror of
https://github.com/containers/podman.git
synced 2025-06-23 18:59:30 +08:00
Merge pull request #2994 from mheon/fix_podman_stop_all
Fix podman stop --all attempting to stop created ctrs
This commit is contained in:
@ -92,6 +92,9 @@ func (r *LocalRuntime) StopContainers(ctx context.Context, cli *cliconfig.StopVa
|
||||
if errors.Cause(err) == libpod.ErrCtrStopped {
|
||||
logrus.Debugf("Container %s is already stopped", c.ID())
|
||||
return nil
|
||||
} else if cli.All && errors.Cause(err) == libpod.ErrCtrStateInvalid {
|
||||
logrus.Debugf("Container %s is not running, could not stop", c.ID())
|
||||
return nil
|
||||
}
|
||||
logrus.Debugf("Failed to stop container %s: %s", c.ID(), err.Error())
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ package integration
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
. "github.com/containers/libpod/test/utils"
|
||||
. "github.com/onsi/ginkgo"
|
||||
@ -48,6 +49,11 @@ var _ = Describe("Podman stop", func() {
|
||||
session = podmanTest.Podman([]string{"stop", cid})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop container by name", func() {
|
||||
@ -57,15 +63,25 @@ var _ = Describe("Podman stop", func() {
|
||||
session = podmanTest.Podman([]string{"stop", "test1"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop container by name", func() {
|
||||
It("podman container stop by name", func() {
|
||||
session := podmanTest.RunTopContainer("test1")
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
session = podmanTest.Podman([]string{"container", "stop", "test1"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop stopped container", func() {
|
||||
@ -80,6 +96,11 @@ var _ = Describe("Podman stop", func() {
|
||||
session3 := podmanTest.Podman([]string{"stop", "test1"})
|
||||
session3.WaitWithDefaultTimeout()
|
||||
Expect(session3.ExitCode()).To(Equal(0))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop all containers -t", func() {
|
||||
@ -105,6 +126,11 @@ var _ = Describe("Podman stop", func() {
|
||||
Expect(output).To(ContainSubstring(cid1))
|
||||
Expect(output).To(ContainSubstring(cid2))
|
||||
Expect(output).To(ContainSubstring(cid3))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop container --time", func() {
|
||||
@ -118,6 +144,11 @@ var _ = Describe("Podman stop", func() {
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
output := session.OutputToString()
|
||||
Expect(output).To(ContainSubstring(cid1))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop container --timeout", func() {
|
||||
@ -131,6 +162,11 @@ var _ = Describe("Podman stop", func() {
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
output := session.OutputToString()
|
||||
Expect(output).To(ContainSubstring(cid1))
|
||||
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop latest containers", func() {
|
||||
@ -140,5 +176,45 @@ var _ = Describe("Podman stop", func() {
|
||||
session = podmanTest.Podman([]string{"stop", "-l", "-t", "1"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop all containers with one stopped", func() {
|
||||
session := podmanTest.RunTopContainer("test1")
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
session2 := podmanTest.RunTopContainer("test2")
|
||||
session2.WaitWithDefaultTimeout()
|
||||
Expect(session2.ExitCode()).To(Equal(0))
|
||||
session3 := podmanTest.Podman([]string{"stop", "-l", "-t", "1"})
|
||||
session3.WaitWithDefaultTimeout()
|
||||
Expect(session3.ExitCode()).To(Equal(0))
|
||||
session4 := podmanTest.Podman([]string{"stop", "-a", "-t", "1"})
|
||||
session4.WaitWithDefaultTimeout()
|
||||
Expect(session4.ExitCode()).To(Equal(0))
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
It("podman stop all containers with one created", func() {
|
||||
session := podmanTest.RunTopContainer("test1")
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
session2 := podmanTest.Podman([]string{"create", ALPINE, "/bin/sh"})
|
||||
session2.WaitWithDefaultTimeout()
|
||||
Expect(session2.ExitCode()).To(Equal(0))
|
||||
session3 := podmanTest.Podman([]string{"stop", "-a", "-t", "1"})
|
||||
session3.WaitWithDefaultTimeout()
|
||||
Expect(session3.ExitCode()).To(Equal(0))
|
||||
finalCtrs := podmanTest.Podman([]string{"ps", "-q"})
|
||||
finalCtrs.WaitWithDefaultTimeout()
|
||||
Expect(finalCtrs.ExitCode()).To(Equal(0))
|
||||
Expect(strings.TrimSpace(finalCtrs.OutputToString())).To(Equal(""))
|
||||
})
|
||||
|
||||
})
|
||||
|
Reference in New Issue
Block a user