diff options
author | baude <bbaude@redhat.com> | 2019-02-11 15:36:24 -0600 |
---|---|---|
committer | baude <bbaude@redhat.com> | 2019-02-14 10:55:05 -0600 |
commit | 5be818e715d57f98e4a930632bc599e3fee3aaed (patch) | |
tree | cde8eb83111a17d6c081c4f25cae4d751b6313a5 /libpod/runtime_volume.go | |
parent | 0cd22435964573231ab32e545d5f319821b35b14 (diff) | |
download | podman-5be818e715d57f98e4a930632bc599e3fee3aaed.tar.gz podman-5be818e715d57f98e4a930632bc599e3fee3aaed.tar.bz2 podman-5be818e715d57f98e4a930632bc599e3fee3aaed.zip |
enable podman-remote volume prune
allow users to remotely prune volumes.
this is the last volume command for remote enablement. as such,
the volume commands are being folded back into main because they
are supported for both local and remote clients.
also, enable all volume tests that do not use containers
as containers are not enabled for the remote client yet.
Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'libpod/runtime_volume.go')
-rw-r--r-- | libpod/runtime_volume.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libpod/runtime_volume.go b/libpod/runtime_volume.go index 485f64bf1..beae50ac9 100644 --- a/libpod/runtime_volume.go +++ b/libpod/runtime_volume.go @@ -154,3 +154,27 @@ func (r *Runtime) GetAllVolumes() ([]*Volume, error) { return r.state.AllVolumes() } + +// PruneVolumes removes unused volumes from the system +func (r *Runtime) PruneVolumes(ctx context.Context) ([]string, []error) { + var ( + prunedIDs []string + pruneErrors []error + ) + vols, err := r.GetAllVolumes() + if err != nil { + pruneErrors = append(pruneErrors, err) + return nil, pruneErrors + } + + for _, vol := range vols { + if err := r.RemoveVolume(ctx, vol, false, true); err != nil { + if err != ErrVolumeBeingUsed { + pruneErrors = append(pruneErrors, err) + } + continue + } + prunedIDs = append(prunedIDs, vol.Name()) + } + return prunedIDs, pruneErrors +} |