From 17f257140eaecbe39f679d27df85573eb15a7d51 Mon Sep 17 00:00:00 2001 From: haircommander Date: Thu, 19 Jul 2018 14:58:48 -0400 Subject: Added pod start and stop As well as added tests, man pages, and completions. Also reformatted and refactored a couple of other small things in the other pod commands. Signed-off-by: haircommander --- cmd/podman/pod_rm.go | 56 ++++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 32 deletions(-) (limited to 'cmd/podman/pod_rm.go') diff --git a/cmd/podman/pod_rm.go b/cmd/podman/pod_rm.go index 8cc46761e..8b4c09cfe 100644 --- a/cmd/podman/pod_rm.go +++ b/cmd/podman/pod_rm.go @@ -2,24 +2,24 @@ package main import ( "fmt" - "os" "github.com/pkg/errors" "github.com/projectatomic/libpod/cmd/podman/libpodruntime" "github.com/projectatomic/libpod/libpod" + "github.com/sirupsen/logrus" "github.com/urfave/cli" ) var ( podRmFlags = []cli.Flag{ - cli.BoolFlag{ - Name: "force, f", - Usage: "Force removal of a running pod by first stopping all containers, then removing all containers in the pod. The default is false", - }, cli.BoolFlag{ Name: "all, a", Usage: "Remove all pods", }, + cli.BoolFlag{ + Name: "force, f", + Usage: "Force removal of a running pod by first stopping all containers, then removing all containers in the pod. The default is false", + }, LatestFlag, } podRmDescription = "Remove one or more pods" @@ -38,15 +38,9 @@ var ( // saveCmd saves the image to either docker-archive or oci func podRmCmd(c *cli.Context) error { - ctx := getContext() - if err := validateFlags(c, rmFlags); err != nil { + if err := checkMutuallyExclusiveFlags(c); err != nil { return err } - - if c.Bool("latest") && c.Bool("all") { - return errors.Errorf("--all and --latest cannot be used together") - } - runtime, err := libpodruntime.GetRuntime(c) if err != nil { return errors.Wrapf(err, "could not get runtime") @@ -54,45 +48,43 @@ func podRmCmd(c *cli.Context) error { defer runtime.Shutdown(false) args := c.Args() - - if len(args) == 0 && !c.Bool("all") && !c.Bool("latest") { - return errors.Errorf("specify one or more pods to remove") - } - + ctx := getContext() var delPods []*libpod.Pod var lastError error - if c.IsSet("all") { + if c.Bool("all") { delPods, err = runtime.GetAllPods() if err != nil { return errors.Wrapf(err, "unable to get pod list") } - } else if c.IsSet("latest") { + } + + if c.Bool("latest") { delPod, err := runtime.GetLatestPod() if err != nil { return errors.Wrapf(err, "unable to get latest pod") } delPods = append(delPods, delPod) - } else { - for _, i := range args { - pod, err := runtime.LookupPod(i) - if err != nil { - fmt.Fprintln(os.Stderr, err) - if lastError != nil { - fmt.Fprintln(os.Stderr, lastError) - } - lastError = errors.Wrapf(err, "unable to find pods %s", i) - continue + } + + for _, i := range args { + pod, err := runtime.LookupPod(i) + if err != nil { + logrus.Errorf("%q", lastError) + if lastError != nil { + logrus.Errorf("%q", lastError) } - delPods = append(delPods, pod) + lastError = errors.Wrapf(err, "unable to find pods %s", i) + continue } + delPods = append(delPods, pod) } - force := c.IsSet("force") + force := c.Bool("force") for _, pod := range delPods { err = runtime.RemovePod(ctx, pod, force, force) if err != nil { if lastError != nil { - fmt.Fprintln(os.Stderr, lastError) + logrus.Errorf("%q", lastError) } lastError = errors.Wrapf(err, "failed to delete pod %v", pod.ID()) } else { -- cgit v1.2.3-54-g00ecf