diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-02-13 22:55:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-13 22:55:52 +0100 |
commit | dfc64e15d7f8b1715798fd68bd3ff74ae192b354 (patch) | |
tree | 28fff3097e5705623bc48670c67dee64a5296329 /cmd/podman/cleanup.go | |
parent | 29d9ccf38158235ef37e4f5c20ad152bb396e3b9 (diff) | |
parent | 9d4e7fe58b10c4130340a151a377cf7be8aaa810 (diff) | |
download | podman-dfc64e15d7f8b1715798fd68bd3ff74ae192b354.tar.gz podman-dfc64e15d7f8b1715798fd68bd3ff74ae192b354.tar.bz2 podman-dfc64e15d7f8b1715798fd68bd3ff74ae192b354.zip |
Merge pull request #2319 from mheon/unconditional_cleanup
Fix manual detach from containers to not wait for exit
Diffstat (limited to 'cmd/podman/cleanup.go')
-rw-r--r-- | cmd/podman/cleanup.go | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/cmd/podman/cleanup.go b/cmd/podman/cleanup.go index b1f727d33..537679d75 100644 --- a/cmd/podman/cleanup.go +++ b/cmd/podman/cleanup.go @@ -37,6 +37,7 @@ func init() { flags.BoolVarP(&cleanupCommand.All, "all", "a", false, "Cleans up all containers") flags.BoolVarP(&cleanupCommand.Latest, "latest", "l", false, "Act on the latest container podman is aware of") + flags.BoolVar(&cleanupCommand.Remove, "rm", false, "After cleanup, remove the container entirely") } func cleanupCmd(c *cliconfig.CleanupValues) error { @@ -55,12 +56,25 @@ func cleanupCmd(c *cliconfig.CleanupValues) error { ctx := getContext() for _, ctr := range cleanupContainers { - if err = ctr.Cleanup(ctx); err != nil { - if lastError != nil { - fmt.Fprintln(os.Stderr, lastError) + hadError := false + if c.Remove { + if err := runtime.RemoveContainer(ctx, ctr, false); err != nil { + if lastError != nil { + fmt.Fprintln(os.Stderr, lastError) + } + lastError = errors.Wrapf(err, "failed to cleanup and remove container %v", ctr.ID()) + hadError = true } - lastError = errors.Wrapf(err, "failed to cleanup container %v", ctr.ID()) } else { + if err := ctr.Cleanup(ctx); err != nil { + if lastError != nil { + fmt.Fprintln(os.Stderr, lastError) + } + lastError = errors.Wrapf(err, "failed to cleanup container %v", ctr.ID()) + hadError = true + } + } + if !hadError { fmt.Println(ctr.ID()) } } |