summaryrefslogtreecommitdiff
path: root/pkg/api/handlers/utils
diff options
context:
space:
mode:
authorPaul Holzinger <paul.holzinger@web.de>2020-11-18 11:23:30 +0100
committerPaul Holzinger <paul.holzinger@web.de>2020-11-18 19:31:25 +0100
commite7fd9234cd0e6a23e32dd31c912ac47883b59738 (patch)
tree7befe4ca3c1e47c52aec7eaaec26204d729ae849 /pkg/api/handlers/utils
parent6ece1d97c428f1641cb35972357cd037562fd06e (diff)
downloadpodman-e7fd9234cd0e6a23e32dd31c912ac47883b59738.tar.gz
podman-e7fd9234cd0e6a23e32dd31c912ac47883b59738.tar.bz2
podman-e7fd9234cd0e6a23e32dd31c912ac47883b59738.zip
Align the podman pod ps --filter behavior with podman ps
Filters with the same key work inclusive with the only exception being `label` which is exclusive. Filters with different keys always work exclusive. Also update the documentation with the new behavior. Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
Diffstat (limited to 'pkg/api/handlers/utils')
-rw-r--r--pkg/api/handlers/utils/pods.go14
1 files changed, 6 insertions, 8 deletions
diff --git a/pkg/api/handlers/utils/pods.go b/pkg/api/handlers/utils/pods.go
index 54ebe2d29..7506dbfd1 100644
--- a/pkg/api/handlers/utils/pods.go
+++ b/pkg/api/handlers/utils/pods.go
@@ -11,8 +11,7 @@ import (
func GetPods(w http.ResponseWriter, r *http.Request) ([]*entities.ListPodsReport, error) {
var (
- pods []*libpod.Pod
- filters []libpod.PodFilter
+ pods []*libpod.Pod
)
runtime := r.Context().Value("runtime").(*libpod.Runtime)
decoder := r.Context().Value("decoder").(*schema.Decoder)
@@ -30,14 +29,13 @@ func GetPods(w http.ResponseWriter, r *http.Request) ([]*entities.ListPodsReport
UnSupportedParameter("digests")
}
+ filters := make([]libpod.PodFilter, 0, len(query.Filters))
for k, v := range query.Filters {
- for _, filter := range v {
- f, err := lpfilters.GeneratePodFilterFunc(k, filter)
- if err != nil {
- return nil, err
- }
- filters = append(filters, f)
+ f, err := lpfilters.GeneratePodFilterFunc(k, v)
+ if err != nil {
+ return nil, err
}
+ filters = append(filters, f)
}
pods, err := runtime.Pods(filters...)
if err != nil {