mirror of
https://github.com/containers/podman.git
synced 2025-05-20 08:36:23 +08:00
Merge pull request #9822 from jmguzik/fix-pods-list-filters-http-api
Fix list pods filter handling in libpod api
This commit is contained in:
@ -44,13 +44,9 @@ func PodCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Pods(w http.ResponseWriter, r *http.Request) {
|
func Pods(w http.ResponseWriter, r *http.Request) {
|
||||||
runtime := r.Context().Value("runtime").(*libpod.Runtime)
|
runtime := r.Context().Value("runtime").(*libpod.Runtime)
|
||||||
decoder := r.Context().Value("decoder").(*schema.Decoder)
|
|
||||||
query := struct {
|
filterMap, err := util.PrepareFilters(r)
|
||||||
Filters map[string][]string `schema:"filters"`
|
if err != nil {
|
||||||
}{
|
|
||||||
// override any golang type defaults
|
|
||||||
}
|
|
||||||
if err := decoder.Decode(&query, r.URL.Query()); err != nil {
|
|
||||||
utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest,
|
utils.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest,
|
||||||
errors.Wrapf(err, "failed to parse parameters for %s", r.URL.String()))
|
errors.Wrapf(err, "failed to parse parameters for %s", r.URL.String()))
|
||||||
return
|
return
|
||||||
@ -58,7 +54,7 @@ func Pods(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
containerEngine := abi.ContainerEngine{Libpod: runtime}
|
containerEngine := abi.ContainerEngine{Libpod: runtime}
|
||||||
podPSOptions := entities.PodPSOptions{
|
podPSOptions := entities.PodPSOptions{
|
||||||
Filters: query.Filters,
|
Filters: *filterMap,
|
||||||
}
|
}
|
||||||
pods, err := containerEngine.PodPs(r.Context(), podPSOptions)
|
pods, err := containerEngine.PodPs(r.Context(), podPSOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -116,6 +116,12 @@ t GET libpod/pods/foo/top?ps_args=args,pid 200 \
|
|||||||
.Titles[0]="COMMAND" \
|
.Titles[0]="COMMAND" \
|
||||||
.Titles[1]="PID" \
|
.Titles[1]="PID" \
|
||||||
|
|
||||||
|
#api list pods sanity checks
|
||||||
|
t GET libpod/pods/json?filters='garb1age}' 400 \
|
||||||
|
.cause="invalid character 'g' looking for beginning of value"
|
||||||
|
t GET libpod/pods/json?filters='{"label":["testl' 400 \
|
||||||
|
.cause="unexpected end of JSON input"
|
||||||
|
|
||||||
# FIXME: I'm not sure what 'prune' is supposed to do; as of 20200224 it
|
# FIXME: I'm not sure what 'prune' is supposed to do; as of 20200224 it
|
||||||
# just returns 200 (ok) with empty result list.
|
# just returns 200 (ok) with empty result list.
|
||||||
#t POST libpod/pods/prune 200 # FIXME: 2020-02-24 returns 200 {}
|
#t POST libpod/pods/prune 200 # FIXME: 2020-02-24 returns 200 {}
|
||||||
|
Reference in New Issue
Block a user