summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-11-03 16:25:39 -0500
committerGitHub <noreply@github.com>2020-11-03 16:25:39 -0500
commit5f897d2abe960f2e29dd4ae87829c3c769a4423b (patch)
treed179cf321919b2cf4368d575b28ea8f81f5b9ddb /libpod
parent55433450c2b7c5fa8c3e5a7cd7aa529e6975d770 (diff)
parent532bce4ad434e302007c3d2adf9994b5a822cc19 (diff)
downloadpodman-5f897d2abe960f2e29dd4ae87829c3c769a4423b.tar.gz
podman-5f897d2abe960f2e29dd4ae87829c3c769a4423b.tar.bz2
podman-5f897d2abe960f2e29dd4ae87829c3c769a4423b.zip
Merge pull request #8232 from ashley-cui/volfilt
Make volume filters inclusive
Diffstat (limited to 'libpod')
-rw-r--r--libpod/runtime_volume.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/libpod/runtime_volume.go b/libpod/runtime_volume.go
index e4e6d87e6..055a243c0 100644
--- a/libpod/runtime_volume.go
+++ b/libpod/runtime_volume.go
@@ -86,8 +86,8 @@ func (r *Runtime) HasVolume(name string) (bool, error) {
// Volumes retrieves all volumes
// Filters can be provided which will determine which volumes are included in the
-// output. Multiple filters are handled by ANDing their output, so only volumes
-// matching all filters are returned
+// output. If multiple filters are used, a volume will be returned if
+// any of the filters are matched
func (r *Runtime) Volumes(filters ...VolumeFilter) ([]*Volume, error) {
r.lock.RLock()
defer r.lock.RUnlock()
@@ -101,11 +101,15 @@ func (r *Runtime) Volumes(filters ...VolumeFilter) ([]*Volume, error) {
return nil, err
}
+ if len(filters) == 0 {
+ return vols, nil
+ }
+
volsFiltered := make([]*Volume, 0, len(vols))
for _, vol := range vols {
- include := true
+ include := false
for _, filter := range filters {
- include = include && filter(vol)
+ include = include || filter(vol)
}
if include {