Merge pull request #909 from rhatdan/lastError
We should not be exiting with exit(1)
This commit is contained in:
commit
5e3c53c172
2 changed files with 21 additions and 16 deletions
|
@ -105,7 +105,7 @@ func main() {
|
|||
if debug {
|
||||
logrus.Errorf(err.Error())
|
||||
} else {
|
||||
fmt.Println(err.Error())
|
||||
fmt.Fprintln(os.Stderr, err.Error())
|
||||
}
|
||||
cli.OsExiter(1)
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/kubernetes-incubator/cri-o/libkpod"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli"
|
||||
"os"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -18,15 +18,21 @@ var (
|
|||
Value: defaultTimeout,
|
||||
},
|
||||
}
|
||||
stopDescription = "Stop one or more containers"
|
||||
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: "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.",
|
||||
Usage: "Stop one or more containers",
|
||||
Description: stopDescription,
|
||||
Flags: stopFlags,
|
||||
Action: stopCmd,
|
||||
ArgsUsage: "CONTAINER-NAME",
|
||||
ArgsUsage: "CONTAINER-NAME [CONTAINER-NAME ...]",
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -50,19 +56,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 {
|
||||
fmt.Fprintln(os.Stderr, lastError)
|
||||
}
|
||||
lastError = errors.Wrapf(err, "failed to stop container %v", container)
|
||||
} else {
|
||||
fmt.Println(cid)
|
||||
}
|
||||
}
|
||||
|
||||
if hadError {
|
||||
os.Exit(1)
|
||||
}
|
||||
return nil
|
||||
return lastError
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue