mirror of
https://github.com/containers/podman.git
synced 2025-05-20 00:27:03 +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) {
|
||||
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 {
|
||||
|
@ -116,6 +116,12 @@ t GET libpod/pods/foo/top?ps_args=args,pid 200 \
|
||||
.Titles[0]="COMMAND" \
|
||||
.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
|
||||
# just returns 200 (ok) with empty result list.
|
||||
#t POST libpod/pods/prune 200 # FIXME: 2020-02-24 returns 200 {}
|
||||
|
Reference in New Issue
Block a user