Allow filtering of "removing", it is a valid status

Do not use a list of statuses outside of libpod to validate container
statuses.  Removing status was never added to the list.

Fixes: https://github.com/containers/podman/issues/13986

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh
2022-04-24 06:03:53 -04:00
parent f65f3320e1
commit 0d83f4b768
2 changed files with 6 additions and 2 deletions

View File

@ -52,8 +52,8 @@ func GenerateContainerFilterFuncs(filter string, filterValues []string, r *libpo
}, nil }, nil
case "status": case "status":
for _, filterValue := range filterValues { for _, filterValue := range filterValues {
if !util.StringInSlice(filterValue, []string{"created", "running", "paused", "stopped", "exited", "unknown"}) { if _, err := define.StringToContainerStatus(filterValue); err != nil {
return nil, errors.Errorf("%s is not a valid status", filterValue) return nil, err
} }
} }
return func(c *libpod.Container) bool { return func(c *libpod.Container) bool {

View File

@ -321,7 +321,11 @@ t GET containers/json?filters='garb1age}' 500 \
t GET containers/json?filters='{"label":["testl' 500 \ t GET containers/json?filters='{"label":["testl' 500 \
.cause="unexpected end of JSON input" .cause="unexpected end of JSON input"
#libpod api list containers sanity checks #libpod api list containers sanity checks
t GET libpod/containers/json?filters='{"status":["removing"]}' 200 length=0
t GET libpod/containers/json?filters='{"status":["bogus"]}' 500 \
.cause="invalid argument"
t GET libpod/containers/json?filters='garb1age}' 500 \ t GET libpod/containers/json?filters='garb1age}' 500 \
.cause="invalid character 'g' looking for beginning of value" .cause="invalid character 'g' looking for beginning of value"
t GET libpod/containers/json?filters='{"label":["testl' 500 \ t GET libpod/containers/json?filters='{"label":["testl' 500 \