diff options
author | Matthew Heon <matthew.heon@pm.me> | 2020-06-24 14:10:29 -0400 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2020-06-24 15:12:56 -0400 |
commit | d78e83f47d487c1680ae0e2a1db42ef9d70caf30 (patch) | |
tree | c113c1f5a50a75b14ae3ed68bdf59d0ea04bc22c /libpod | |
parent | 4ee66598c1201a7d191c03c2d2f067f847aaddf5 (diff) | |
download | podman-d78e83f47d487c1680ae0e2a1db42ef9d70caf30.tar.gz podman-d78e83f47d487c1680ae0e2a1db42ef9d70caf30.tar.bz2 podman-d78e83f47d487c1680ae0e2a1db42ef9d70caf30.zip |
Add support for dangling filter to volumes
The dangling filter determine whether a volume is dangling - IE,
it has no containers attached using it. Unlike our other filters,
this one is a boolean - must be true or false, not arbitrary
values.
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/volume.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libpod/volume.go b/libpod/volume.go index 82f389833..b29ac7ddf 100644 --- a/libpod/volume.go +++ b/libpod/volume.go @@ -137,7 +137,7 @@ func (v *Volume) Config() (*VolumeConfig, error) { // VolumeInUse goes through the container dependencies of a volume // and checks if the volume is being used by any container. -func (v *Volume) VolumesInUse() ([]string, error) { +func (v *Volume) VolumeInUse() ([]string, error) { v.lock.Lock() defer v.lock.Unlock() @@ -146,3 +146,13 @@ func (v *Volume) VolumesInUse() ([]string, error) { } return v.runtime.state.VolumeInUse(v) } + +// IsDangling returns whether this volume is dangling (unused by any +// containers). +func (v *Volume) IsDangling() (bool, error) { + ctrs, err := v.VolumeInUse() + if err != nil { + return false, err + } + return len(ctrs) == 0, nil +} |