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:
		
						commit
						ec47312eeb
					
				| 
						 | 
				
			
			@ -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 {}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue