summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2020-06-24 14:10:29 -0400
committerMatthew Heon <matthew.heon@pm.me>2020-06-24 15:12:56 -0400
commitd78e83f47d487c1680ae0e2a1db42ef9d70caf30 (patch)
treec113c1f5a50a75b14ae3ed68bdf59d0ea04bc22c /libpod
parent4ee66598c1201a7d191c03c2d2f067f847aaddf5 (diff)
downloadpodman-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.go12
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
+}