summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-04-03 10:43:58 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-04-03 18:37:41 +0000
commitb1a8d769b84c52ea5ea74263cff6f582b1bdfcf0 (patch)
tree790e3b39a5995951c8834d3a6229882149343e7a
parent4640e7966769a128b30c2482cda8f3ef25eb77c9 (diff)
downloadpodman-b1a8d769b84c52ea5ea74263cff6f582b1bdfcf0.tar.gz
podman-b1a8d769b84c52ea5ea74263cff6f582b1bdfcf0.tar.bz2
podman-b1a8d769b84c52ea5ea74263cff6f582b1bdfcf0.zip
Stopping a stopped container should not be an error
Resolves: #575 Signed-off-by: baude <bbaude@redhat.com> Closes: #588 Approved by: mheon
-rw-r--r--cmd/podman/stop.go2
-rw-r--r--libpod/container_api.go8
2 files changed, 9 insertions, 1 deletions
diff --git a/cmd/podman/stop.go b/cmd/podman/stop.go
index 1d112ffe5..5bfa05708 100644
--- a/cmd/podman/stop.go
+++ b/cmd/podman/stop.go
@@ -101,7 +101,7 @@ func stopCmd(c *cli.Context) error {
} else {
stopTimeout = ctr.StopTimeout()
}
- if err := ctr.StopWithTimeout(stopTimeout); err != nil {
+ if err := ctr.StopWithTimeout(stopTimeout); err != nil && err != libpod.ErrCtrStopped {
if lastError != nil {
fmt.Fprintln(os.Stderr, lastError)
}
diff --git a/libpod/container_api.go b/libpod/container_api.go
index 41e754587..6106cfc12 100644
--- a/libpod/container_api.go
+++ b/libpod/container_api.go
@@ -215,6 +215,10 @@ func (c *Container) Stop() error {
return errors.Wrapf(ErrCtrStateInvalid, "can only stop created, running, or stopped containers")
}
+ if c.state.State == ContainerStateStopped {
+ return ErrCtrStopped
+ }
+
return c.stop(c.config.StopTimeout)
}
@@ -237,6 +241,10 @@ func (c *Container) StopWithTimeout(timeout uint) error {
return errors.Wrapf(ErrCtrStateInvalid, "can only stop created, running, or stopped containers")
}
+ if c.state.State == ContainerStateStopped {
+ return ErrCtrStopped
+ }
+
return c.stop(timeout)
}