diff options
author | Urvashi Mohnani <umohnani@redhat.com> | 2017-11-21 15:31:20 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-11-21 22:03:13 +0000 |
commit | 768fb6fe0f59467442a1aaaa4ca863d179255020 (patch) | |
tree | 0fa500b5edfb9768e52bd935dad9bba967fadb3a /cmd/kpod | |
parent | 4ff251d9118dfebde744fce8a2e2069144f259a4 (diff) | |
download | podman-768fb6fe0f59467442a1aaaa4ca863d179255020.tar.gz podman-768fb6fe0f59467442a1aaaa4ca863d179255020.tar.bz2 podman-768fb6fe0f59467442a1aaaa4ca863d179255020.zip |
Update kpod rm to use new container state
kpod rm now uses the new container state and runtime
Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
Closes: #58
Approved by: mheon
Diffstat (limited to 'cmd/kpod')
-rw-r--r-- | cmd/kpod/rm.go | 45 |
1 files changed, 17 insertions, 28 deletions
diff --git a/cmd/kpod/rm.go b/cmd/kpod/rm.go index 0d3027abd..c7f5f72b2 100644 --- a/cmd/kpod/rm.go +++ b/cmd/kpod/rm.go @@ -4,9 +4,7 @@ import ( "fmt" "github.com/pkg/errors" - "github.com/projectatomic/libpod/libkpod" "github.com/urfave/cli" - "golang.org/x/net/context" ) var ( @@ -30,40 +28,31 @@ var ( // saveCmd saves the image to either docker-archive or oci func rmCmd(c *cli.Context) error { - args := c.Args() - if len(args) == 0 { - return errors.Errorf("specify one or more containers to remove") - } if err := validateFlags(c, rmFlags); err != nil { return err } - config, err := getConfig(c) - if err != nil { - return errors.Wrapf(err, "could not get config") - } - server, err := libkpod.New(config) + runtime, err := getRuntime(c) if err != nil { - return errors.Wrapf(err, "could not get container server") + return errors.Wrapf(err, "Could not get runtime") } - defer server.Shutdown() - err = server.Update() - if err != nil { - return errors.Wrapf(err, "could not update list of containers") + defer runtime.Shutdown(false) + + args := c.Args() + if len(args) == 0 { + return errors.Errorf("specify one or more containers to remove") } - force := c.Bool("force") - for _, container := range c.Args() { - id, err2 := server.Remove(context.Background(), container, force) - if err2 != nil { - if err == nil { - err = err2 - } else { - err = errors.Wrapf(err, "%v. Stop the container before attempting removal or use -f\n", err2) - } - } else { - fmt.Println(id) + for _, container := range args { + ctr, err := runtime.LookupContainer(container) + if err != nil { + return errors.Wrapf(err, "error looking up container", container) + } + err = runtime.RemoveContainer(ctr, c.Bool("force")) + if err != nil { + return errors.Wrapf(err, "error removing container %q", ctr.ID()) } + fmt.Println(ctr.ID()) } - return err + return nil } |