Merge pull request from joelsmith/master

Use regex for "pod ps" name filter to match "ps" behavior
This commit is contained in:
OpenShift Merge Robot
2020-11-05 01:54:22 +01:00
committed by GitHub
2 changed files with 28 additions and 1 deletions
libpod/filters
test/e2e

@ -1,6 +1,7 @@
package lpfilters
import (
"regexp"
"strconv"
"strings"
@ -78,7 +79,11 @@ func GeneratePodFilterFunc(filter, filterValue string) (
}, nil
case "name":
return func(p *libpod.Pod) bool {
return strings.Contains(p.Name(), filterValue)
match, err := regexp.MatchString(filterValue, p.Name())
if err != nil {
return false
}
return match
}, nil
case "status":
if !util.StringInSlice(filterValue, []string{"stopped", "running", "paused", "exited", "dead", "created"}) {

@ -107,6 +107,28 @@ var _ = Describe("Podman ps", func() {
Expect(result.ExitCode()).To(Equal(0))
})
It("podman pod ps filter name regexp", func() {
_, ec, podid := podmanTest.CreatePod("mypod")
Expect(ec).To(Equal(0))
_, ec2, _ := podmanTest.CreatePod("mypod1")
Expect(ec2).To(Equal(0))
result := podmanTest.Podman([]string{"pod", "ps", "-q", "--no-trunc", "--filter", "name=mypod"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
output := result.OutputToStringArray()
Expect(len(output)).To(Equal(2))
result = podmanTest.Podman([]string{"pod", "ps", "-q", "--no-trunc", "--filter", "name=mypod$"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
output = result.OutputToStringArray()
Expect(len(output)).To(Equal(1))
Expect(output[0]).To(Equal(podid))
})
It("podman pod ps mutually exclusive flags", func() {
session := podmanTest.Podman([]string{"pod", "ps", "-q", "--format", "{{.ID}}"})
session.WaitWithDefaultTimeout()