aboutsummaryrefslogtreecommitdiff
path: root/libpod/options.go
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@pm.me>2019-02-26 12:16:58 -0500
committerMatthew Heon <matthew.heon@pm.me>2019-02-26 12:16:58 -0500
commit83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94 (patch)
tree24dc828a104d2c4f4fc10400f4b45be4e7fbf111 /libpod/options.go
parent0e252f043707fe4ca556751ee9b23243ce22e3f3 (diff)
downloadpodman-83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94.tar.gz
podman-83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94.tar.bz2
podman-83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94.zip
Only remove image volumes when removing containers
When removing volumes with rm --volumes we want to only remove volumes that were created with the container. Volumes created separately via 'podman volume create' should not be removed. Also ensure that --rm implies volumes will be removed. Fixes #2441 Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'libpod/options.go')
-rw-r--r--libpod/options.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/libpod/options.go b/libpod/options.go
index 184d5d59f..1e8592a25 100644
--- a/libpod/options.go
+++ b/libpod/options.go
@@ -1248,6 +1248,22 @@ func WithVolumeOptions(options map[string]string) VolumeCreateOption {
}
}
+// withSetCtrSpecific sets a bool notifying libpod that a volume was created
+// specifically for a container.
+// These volumes will be removed when the container is removed and volumes are
+// also specified for removal.
+func withSetCtrSpecific() VolumeCreateOption {
+ return func(volume *Volume) error {
+ if volume.valid {
+ return ErrVolumeFinalized
+ }
+
+ volume.config.IsCtrSpecific = true
+
+ return nil
+ }
+}
+
// Pod Creation Options
// WithPodName sets the name of the pod.