diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2017-12-19 15:42:30 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-12-20 18:10:43 +0000 |
commit | 1f49f555af0709ea7c12becdb750ba60a00eaf1d (patch) | |
tree | 9a39b8d0b61ff8d4cb88619ad49bd229320e952c /cmd/podman/stop.go | |
parent | 3607fcb553046b9a51c4b591ddf20236c628dc57 (diff) | |
download | podman-1f49f555af0709ea7c12becdb750ba60a00eaf1d.tar.gz podman-1f49f555af0709ea7c12becdb750ba60a00eaf1d.tar.bz2 podman-1f49f555af0709ea7c12becdb750ba60a00eaf1d.zip |
Plumb through the --stop-timeout signal handling
podman run/create have the ability to set the stop timeout flag.
We need to stop it in the database.
Also Allowing negative time for stop timeout makes no sense, so switching
to timeout of uint, allows user to specify huge timeout values.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Closes: #158
Approved by: TomSweeneyRedHat
Diffstat (limited to 'cmd/podman/stop.go')
-rw-r--r-- | cmd/podman/stop.go | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/cmd/podman/stop.go b/cmd/podman/stop.go index 3b1ffbba5..f85512d47 100644 --- a/cmd/podman/stop.go +++ b/cmd/podman/stop.go @@ -6,17 +6,15 @@ import ( "github.com/pkg/errors" "github.com/projectatomic/libpod/libpod" - "github.com/sirupsen/logrus" "github.com/urfave/cli" ) var ( - defaultTimeout int64 = 10 - stopFlags = []cli.Flag{ - cli.Int64Flag{ + stopFlags = []cli.Flag{ + cli.UintFlag{ Name: "timeout, t", Usage: "Seconds to wait for stop before killing the container", - Value: defaultTimeout, + Value: libpod.CtrRemoveTimeout, }, cli.BoolFlag{ Name: "all, a", @@ -43,7 +41,6 @@ var ( func stopCmd(c *cli.Context) error { args := c.Args() - stopTimeout := c.Int64("timeout") if c.Bool("all") && len(args) > 0 { return errors.Errorf("no arguments are needed with -a") } @@ -60,8 +57,6 @@ func stopCmd(c *cli.Context) error { } defer runtime.Shutdown(false) - logrus.Debugf("Stopping containers with timeout %d", stopTimeout) - var filterFuncs []libpod.ContainerFilter var containers []*libpod.Container var lastError error @@ -91,6 +86,12 @@ func stopCmd(c *cli.Context) error { } for _, ctr := range containers { + var stopTimeout uint + if c.IsSet("timeout") { + stopTimeout = c.Uint("timeout") + } else { + stopTimeout = ctr.StopTimeout() + } if err := ctr.Stop(stopTimeout); err != nil { if lastError != nil { fmt.Fprintln(os.Stderr, lastError) |