Merge pull request #3599 from QiWang19/ps-regexp

support podman ps filter regular expressions
This commit is contained in:
OpenShift Merge Robot
2019-07-19 03:27:28 +02:00
committed by GitHub
2 changed files with 31 additions and 1 deletions

View File

@ -296,7 +296,11 @@ func generateContainerFilterFuncs(filter, filterValue string, r *libpod.Runtime)
}, nil }, nil
case "name": case "name":
return func(c *libpod.Container) bool { return func(c *libpod.Container) bool {
return strings.Contains(c.Name(), filterValue) match, err := regexp.MatchString(filterValue, c.Name())
if err != nil {
return false
}
return match
}, nil }, nil
case "exited": case "exited":
exitCode, err := strconv.ParseInt(filterValue, 10, 32) exitCode, err := strconv.ParseInt(filterValue, 10, 32)

View File

@ -332,4 +332,30 @@ var _ = Describe("Podman ps", func() {
Expect(result.ExitCode()).To(Equal(0)) Expect(result.ExitCode()).To(Equal(0))
Expect(result.OutputToStringArray()[0]).To(Equal(fullCid)) Expect(result.OutputToStringArray()[0]).To(Equal(fullCid))
}) })
It("podman ps filter name regexp", func() {
session := podmanTest.Podman([]string{"run", "-d", "--name", "test1", ALPINE, "top"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
fullCid := session.OutputToString()
session2 := podmanTest.Podman([]string{"run", "-d", "--name", "test11", ALPINE, "top"})
session2.WaitWithDefaultTimeout()
Expect(session2.ExitCode()).To(Equal(0))
result := podmanTest.Podman([]string{"ps", "-aq", "--no-trunc", "--filter", "name=test1"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
output := result.OutputToStringArray()
Expect(len(output)).To(Equal(2))
result = podmanTest.Podman([]string{"ps", "-aq", "--no-trunc", "--filter", "name=test1$"})
result.WaitWithDefaultTimeout()
Expect(result.ExitCode()).To(Equal(0))
output = result.OutputToStringArray()
Expect(len(output)).To(Equal(1))
Expect(output[0]).To(Equal(fullCid))
})
}) })