summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders F Björklund <anders.f.bjorklund@gmail.com>2020-11-14 20:10:57 +0100
committerAnders F Björklund <anders.f.bjorklund@gmail.com>2020-11-14 20:18:52 +0100
commit0dad2499a33e3d76eb4508a52c7449224ee1e10b (patch)
tree1e70b1a1ff898cfa4f72bbc2b83bfda1a10aade3
parent738d62ea960af439bd545820e1853cbd73464493 (diff)
downloadpodman-0dad2499a33e3d76eb4508a52c7449224ee1e10b.tar.gz
podman-0dad2499a33e3d76eb4508a52c7449224ee1e10b.tar.bz2
podman-0dad2499a33e3d76eb4508a52c7449224ee1e10b.zip
Add support for volume ls --filter label=key=value
Supposed to be able to search for labels with a given value. Previously it meant searching for label key and label value: --filter label=key --filter label=value Add some documentation and integration tests for it as well. Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
-rw-r--r--cmd/podman/volumes/list.go4
-rw-r--r--docs/source/markdown/podman-volume-ls.1.md2
-rw-r--r--test/e2e/volume_ls_test.go22
3 files changed, 26 insertions, 2 deletions
diff --git a/cmd/podman/volumes/list.go b/cmd/podman/volumes/list.go
index 5548c9c1b..b0d999765 100644
--- a/cmd/podman/volumes/list.go
+++ b/cmd/podman/volumes/list.go
@@ -73,11 +73,11 @@ func list(cmd *cobra.Command, args []string) error {
lsOpts.Filter = make(map[string][]string)
}
for _, f := range cliOpts.Filter {
- filterSplit := strings.Split(f, "=")
+ filterSplit := strings.SplitN(f, "=", 2)
if len(filterSplit) < 2 {
return errors.Errorf("filter input must be in the form of filter=value: %s is invalid", f)
}
- lsOpts.Filter[filterSplit[0]] = append(lsOpts.Filter[filterSplit[0]], filterSplit[1:]...)
+ lsOpts.Filter[filterSplit[0]] = append(lsOpts.Filter[filterSplit[0]], filterSplit[1])
}
responses, err := registry.ContainerEngine().VolumeList(context.Background(), lsOpts)
if err != nil {
diff --git a/docs/source/markdown/podman-volume-ls.1.md b/docs/source/markdown/podman-volume-ls.1.md
index 98c3fae54..48853bdfd 100644
--- a/docs/source/markdown/podman-volume-ls.1.md
+++ b/docs/source/markdown/podman-volume-ls.1.md
@@ -40,6 +40,8 @@ $ podman volume ls --format json
$ podman volume ls --format "{{.Driver}} {{.Scope}}"
$ podman volume ls --filter name=foo,label=blue
+
+$ podman volume ls --filter label=key=value
```
## SEE ALSO
diff --git a/test/e2e/volume_ls_test.go b/test/e2e/volume_ls_test.go
index cda118bf1..5c466124d 100644
--- a/test/e2e/volume_ls_test.go
+++ b/test/e2e/volume_ls_test.go
@@ -83,6 +83,22 @@ var _ = Describe("Podman volume ls", func() {
Expect(session.ExitCode()).To(Equal(0))
Expect(len(session.OutputToStringArray())).To(Equal(2))
Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName))
+
+ session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=foo"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ Expect(len(session.OutputToStringArray())).To(Equal(0))
+
+ session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ Expect(len(session.OutputToStringArray())).To(Equal(2))
+ Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName))
+
+ session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=baz"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ Expect(len(session.OutputToStringArray())).To(Equal(0))
})
It("podman volume ls with --filter dangling", func() {
@@ -132,5 +148,11 @@ var _ = Describe("Podman volume ls", func() {
Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName))
Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol))
+ session = podmanTest.Podman([]string{"volume", "ls", "--filter", "label=foo=bar", "--filter", "label=foo2=bar2"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).To(Equal(0))
+ Expect(len(session.OutputToStringArray())).To(Equal(3))
+ Expect(session.OutputToStringArray()[1]).To(ContainSubstring(volName))
+ Expect(session.OutputToStringArray()[2]).To(ContainSubstring(anotherVol))
})
})