diff options
author | Jhon Honce <jhonce@redhat.com> | 2019-03-04 11:55:23 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2019-03-04 12:20:37 -0700 |
commit | ae47a7c47e103f22e557de394342054ca801168c (patch) | |
tree | b57ab3be002a800ee2c2f768f67e2844cb6d1c3b /pkg | |
parent | 54eecb02f050d743c7a00f5d8e2e8ffbdc26d568 (diff) | |
download | podman-ae47a7c47e103f22e557de394342054ca801168c.tar.gz podman-ae47a7c47e103f22e557de394342054ca801168c.tar.bz2 podman-ae47a7c47e103f22e557de394342054ca801168c.zip |
Fix #2521
* Bad merge against podman stop, restored overwritten code
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/adapter/containers.go | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/pkg/adapter/containers.go b/pkg/adapter/containers.go index b0c75cf49..7514f30d2 100644 --- a/pkg/adapter/containers.go +++ b/pkg/adapter/containers.go @@ -9,6 +9,7 @@ import ( "github.com/containers/libpod/libpod" "github.com/containers/libpod/pkg/adapter/shortcuts" "github.com/pkg/errors" + "github.com/sirupsen/logrus" ) // GetLatestContainer gets the latest Container and wraps it in an adapter Container @@ -45,9 +46,10 @@ func (r *LocalRuntime) LookupContainer(idOrName string) (*Container, error) { // StopContainers stops container(s) based on CLI inputs. // Returns list of successful id(s), map of failed id(s) + error, or error not from container func (r *LocalRuntime) StopContainers(ctx context.Context, cli *cliconfig.StopValues) ([]string, map[string]error, error) { - timeout := uint(0) - if cli.Flags().Changed("timeout") { - timeout = uint(cli.Timeout) + var timeout *uint + if cli.Flags().Changed("timeout") || cli.Flags().Changed("time") { + t := uint(cli.Timeout) + timeout = &t } var ( @@ -61,11 +63,18 @@ func (r *LocalRuntime) StopContainers(ctx context.Context, cli *cliconfig.StopVa } for _, c := range ctrs { - err := c.StopWithTimeout(timeout) - if err != nil && errors.Cause(err) != libpod.ErrCtrStopped { - failures[c.ID()] = err - } else { + if timeout == nil { + t := c.StopTimeout() + timeout = &t + logrus.Debugf("Set timeout to container %s default (%d)", c.ID(), *timeout) + } + if err := c.StopWithTimeout(*timeout); err == nil { ok = append(ok, c.ID()) + } else if errors.Cause(err) == libpod.ErrCtrStopped { + ok = append(ok, c.ID()) + logrus.Debugf("Container %s is already stopped", c.ID()) + } else { + failures[c.ID()] = err } } return ok, failures, nil |