diff options
author | Jakub Guzik <jakubmguzik@gmail.com> | 2021-03-26 09:34:34 +0100 |
---|---|---|
committer | Jakub Guzik <jakubmguzik@gmail.com> | 2021-03-26 20:19:12 +0100 |
commit | 85015a5e23fe4944bdd2931311c0e6e223466f57 (patch) | |
tree | 496cfbd39edf045c68ef072fd526a1f7f84416f7 /pkg/api/handlers/libpod/pods.go | |
parent | 24581d8760691af1657c4f890d42ebd76f5e85c4 (diff) | |
download | podman-85015a5e23fe4944bdd2931311c0e6e223466f57.tar.gz podman-85015a5e23fe4944bdd2931311c0e6e223466f57.tar.bz2 podman-85015a5e23fe4944bdd2931311c0e6e223466f57.zip |
Fix list pods filter handling in libpod api
Signed-off-by: Jakub Guzik <jakubmguzik@gmail.com>
Diffstat (limited to 'pkg/api/handlers/libpod/pods.go')
-rw-r--r-- | pkg/api/handlers/libpod/pods.go | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/pkg/api/handlers/libpod/pods.go b/pkg/api/handlers/libpod/pods.go index 89a4a451f..4dc8740e2 100644 --- a/pkg/api/handlers/libpod/pods.go +++ b/pkg/api/handlers/libpod/pods.go @@ -44,13 +44,9 @@ func PodCreate(w http.ResponseWriter, r *http.Request) { func Pods(w http.ResponseWriter, r *http.Request) { runtime := r.Context().Value("runtime").(*libpod.Runtime) - decoder := r.Context().Value("decoder").(*schema.Decoder) - query := struct { - Filters map[string][]string `schema:"filters"` - }{ - // override any golang type defaults - } - if err := decoder.Decode(&query, r.URL.Query()); err != nil { + + filterMap, err := util.PrepareFilters(r) + if err != nil { utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest, errors.Wrapf(err, "failed to parse parameters for %s", r.URL.String())) return @@ -58,7 +54,7 @@ func Pods(w http.ResponseWriter, r *http.Request) { containerEngine := abi.ContainerEngine{Libpod: runtime} podPSOptions := entities.PodPSOptions{ - Filters: query.Filters, + Filters: *filterMap, } pods, err := containerEngine.PodPs(r.Context(), podPSOptions) if err != nil { |