diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-04-17 08:55:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-17 08:55:59 -0700 |
commit | 799d4667c1c33ac025741e2082739999f5b4563a (patch) | |
tree | 9fe87a7fc5f470314f754b8452163c4f59fd1a2c /pkg/varlinkapi/pods.go | |
parent | d0c5e216ca508d195b805d0e48b159cfbff868a9 (diff) | |
parent | 4319552cf89e72925a80c63f427e5ef0a6376046 (diff) | |
download | podman-799d4667c1c33ac025741e2082739999f5b4563a.tar.gz podman-799d4667c1c33ac025741e2082739999f5b4563a.tar.bz2 podman-799d4667c1c33ac025741e2082739999f5b4563a.zip |
Merge pull request #2936 from haircommander/pod-prune
Add podman pod prune
Diffstat (limited to 'pkg/varlinkapi/pods.go')
-rw-r--r-- | pkg/varlinkapi/pods.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pkg/varlinkapi/pods.go b/pkg/varlinkapi/pods.go index ac8e24747..f34375bf5 100644 --- a/pkg/varlinkapi/pods.go +++ b/pkg/varlinkapi/pods.go @@ -101,6 +101,28 @@ func (i *LibpodAPI) GetPod(call iopodman.VarlinkCall, name string) error { return call.ReplyGetPod(listPod) } +// GetPodsByStatus returns a slice of pods filtered by a libpod status +func (i *LibpodAPI) GetPodsByStatus(call iopodman.VarlinkCall, statuses []string) error { + filterFuncs := func(p *libpod.Pod) bool { + state, _ := shared.GetPodStatus(p) + for _, status := range statuses { + if state == status { + return true + } + } + return false + } + filteredPods, err := i.Runtime.Pods(filterFuncs) + if err != nil { + return call.ReplyErrorOccurred(err.Error()) + } + podIDs := make([]string, 0, len(filteredPods)) + for _, p := range filteredPods { + podIDs = append(podIDs, p.ID()) + } + return call.ReplyGetPodsByStatus(podIDs) +} + // InspectPod ... func (i *LibpodAPI) InspectPod(call iopodman.VarlinkCall, name string) error { pod, err := i.Runtime.LookupPod(name) |