We should not be exiting with exit(1)
There is cleanup code that will never get run. This code will print out all errors and then return the last error. This should allow for proper cleanup. Also cleanup help to switch usage and description. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
parent
b82bf55404
commit
a001b177d6
1 changed files with 18 additions and 14 deletions
|
@ -6,7 +6,6 @@ import (
|
|||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -18,15 +17,21 @@ var (
|
|||
Value: defaultTimeout,
|
||||
},
|
||||
}
|
||||
stopDescription = "Stop one or more containers"
|
||||
stopCommand = cli.Command{
|
||||
Name: "stop",
|
||||
Usage: "Stops one or more running containers. The container name or ID can be used. A timeout to forcibly" +
|
||||
" stop the container can also be set but defaults to 10 seconds otherwise.",
|
||||
stopDescription = `
|
||||
kpod stop
|
||||
|
||||
Stops one or more running containers. The container name or ID can be used.
|
||||
A timeout to forcibly stop the container can also be set but defaults to 10
|
||||
seconds otherwise.
|
||||
`
|
||||
|
||||
stopCommand = cli.Command{
|
||||
Name: "stop",
|
||||
Usage: "Stop one or more containers",
|
||||
Description: stopDescription,
|
||||
Flags: stopFlags,
|
||||
Action: stopCmd,
|
||||
ArgsUsage: "CONTAINER-NAME",
|
||||
ArgsUsage: "CONTAINER-NAME [CONTAINER-NAME ...]",
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -50,19 +55,18 @@ func stopCmd(c *cli.Context) error {
|
|||
if err != nil {
|
||||
return errors.Wrapf(err, "could not update list of containers")
|
||||
}
|
||||
hadError := false
|
||||
var lastError error
|
||||
for _, container := range c.Args() {
|
||||
cid, err := server.ContainerStop(container, stopTimeout)
|
||||
if err != nil {
|
||||
hadError = true
|
||||
logrus.Error(err)
|
||||
if lastError != nil {
|
||||
logrus.Error(lastError)
|
||||
}
|
||||
lastError = errors.Wrapf(err, "failed to stop %v", container)
|
||||
} else {
|
||||
fmt.Println(cid)
|
||||
}
|
||||
}
|
||||
|
||||
if hadError {
|
||||
os.Exit(1)
|
||||
}
|
||||
return nil
|
||||
return lastError
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue