summaryrefslogtreecommitdiff
path: root/pkg/adapter/pods_remote.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/adapter/pods_remote.go')
-rw-r--r--pkg/adapter/pods_remote.go44
1 files changed, 32 insertions, 12 deletions
diff --git a/pkg/adapter/pods_remote.go b/pkg/adapter/pods_remote.go
index 00a5d9a32..7cf38aac0 100644
--- a/pkg/adapter/pods_remote.go
+++ b/pkg/adapter/pods_remote.go
@@ -14,13 +14,9 @@ import (
"github.com/containers/libpod/libpod"
"github.com/containers/libpod/pkg/varlinkapi"
"github.com/pkg/errors"
+ "github.com/sirupsen/logrus"
)
-// Pod ...
-type Pod struct {
- remotepod
-}
-
// PodContainerStats is struct containing an adapter Pod and a libpod
// ContainerStats and is used primarily for outputing pod stats.
type PodContainerStats struct {
@@ -28,13 +24,6 @@ type PodContainerStats struct {
ContainerStats map[string]*libpod.ContainerStats
}
-type remotepod struct {
- config *libpod.PodConfig
- state *libpod.PodInspectState
- containers []libpod.PodContainerInfo
- Runtime *LocalRuntime
-}
-
// RemovePods removes one or more based on the cli context.
func (r *LocalRuntime) RemovePods(ctx context.Context, cli *cliconfig.PodRmValues) ([]string, []error) {
var (
@@ -539,3 +528,34 @@ func (r *LocalRuntime) RemovePod(ctx context.Context, p *Pod, removeCtrs, force
}
return nil
}
+
+// PrunePods...
+func (r *LocalRuntime) PrunePods(ctx context.Context, cli *cliconfig.PodPruneValues) ([]string, map[string]error, error) {
+ var (
+ ok = []string{}
+ failures = map[string]error{}
+ )
+ states := []string{shared.PodStateStopped, shared.PodStateExited}
+ if cli.Force {
+ states = append(states, shared.PodStateRunning)
+ }
+
+ ids, err := iopodman.GetPodsByStatus().Call(r.Conn, states)
+ if err != nil {
+ return ok, failures, err
+ }
+ if len(ids) < 1 {
+ return ok, failures, nil
+ }
+
+ for _, id := range ids {
+ _, err := iopodman.RemovePod().Call(r.Conn, id, cli.Force)
+ if err != nil {
+ logrus.Debugf("Failed to remove pod %s: %s", id, err.Error())
+ failures[id] = err
+ } else {
+ ok = append(ok, id)
+ }
+ }
+ return ok, failures, nil
+}