2015-03-24 23:57:23 -04:00
package client
import (
"fmt"
2015-12-29 09:03:39 -05:00
"strings"
2015-03-24 23:57:23 -04:00
2016-03-16 15:19:22 -04:00
"golang.org/x/net/context"
2015-05-05 00:18:28 -04:00
Cli "github.com/docker/docker/cli"
2015-03-24 23:57:23 -04:00
flag "github.com/docker/docker/pkg/mflag"
)
2015-10-03 11:56:41 -04:00
// CmdStop stops one or more containers.
2015-03-25 13:34:41 -04:00
//
// A running container is stopped by first sending SIGTERM and then SIGKILL if the container fails to stop within a grace period (the default is 10 seconds).
//
// Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
2015-03-24 23:57:23 -04:00
func ( cli * DockerCli ) CmdStop ( args ... string ) error {
2015-10-08 08:46:21 -04:00
cmd := Cli . Subcmd ( "stop" , [ ] string { "CONTAINER [CONTAINER...]" } , Cli . DockerCommands [ "stop" ] . Description + ".\nSending SIGTERM and then SIGKILL after a grace period" , true )
2015-03-24 23:57:23 -04:00
nSeconds := cmd . Int ( [ ] string { "t" , "-time" } , 10 , "Seconds to wait for stop before killing it" )
cmd . Require ( flag . Min , 1 )
2015-03-28 21:22:46 -04:00
cmd . ParseFlags ( args , true )
2015-03-24 23:57:23 -04:00
2015-12-29 09:03:39 -05:00
var errs [ ] string
2015-03-24 23:57:23 -04:00
for _ , name := range cmd . Args ( ) {
2016-03-16 15:19:22 -04:00
if err := cli . client . ContainerStop ( context . Background ( ) , name , * nSeconds ) ; err != nil {
Remove redundant error message
Currently some commands including `kill`, `pause`, `restart`, `rm`,
`rmi`, `stop`, `unpause`, `udpate`, `wait` will print a lot of error
message on client side, with a lot of redundant messages, this commit is
trying to remove the unuseful and redundant information for user.
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-03 01:29:15 -05:00
errs = append ( errs , err . Error ( ) )
2015-03-24 23:57:23 -04:00
} else {
fmt . Fprintf ( cli . out , "%s\n" , name )
}
}
2015-12-29 09:03:39 -05:00
if len ( errs ) > 0 {
return fmt . Errorf ( "%s" , strings . Join ( errs , "\n" ) )
2015-05-05 03:59:17 -04:00
}
return nil
2015-03-24 23:57:23 -04:00
}