summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafi Khardalian <rafi@metacloud.com>2012-09-05 16:09:45 +0000
committerRafi Khardalian <rafi@metacloud.com>2012-09-17 20:36:09 +0000
commitd05637f99271e081f9579b69cf77de1969839561 (patch)
treecc5b250a7c8a528a7b3e84659674af85d033313d
parent725c99b2a9a05c905b6ff9455d47917c39be9f57 (diff)
downloadnova-d05637f99271e081f9579b69cf77de1969839561.tar.gz
nova-d05637f99271e081f9579b69cf77de1969839561.tar.xz
nova-d05637f99271e081f9579b69cf77de1969839561.zip
Fix volume deletion when device mapper is used
Call dmsetup remove if there is a /dev/mapper/nova--volumes- element present. Resolves bug 979020 Change-Id: Iddaaed411a77dda4bd32f9a97687ff17744119eb
-rw-r--r--etc/nova/rootwrap.d/volume.filters4
-rw-r--r--nova/volume/driver.py4
2 files changed, 8 insertions, 0 deletions
diff --git a/etc/nova/rootwrap.d/volume.filters b/etc/nova/rootwrap.d/volume.filters
index 9451e5115..e2b0f6203 100644
--- a/etc/nova/rootwrap.d/volume.filters
+++ b/etc/nova/rootwrap.d/volume.filters
@@ -27,3 +27,7 @@ lvdisplay: CommandFilter, /sbin/lvdisplay, root
# nova/volume/driver.py: 'iscsiadm', '-m', 'node', '-T', ...
iscsiadm: CommandFilter, /sbin/iscsiadm, root
iscsiadm_usr: CommandFilter, /usr/bin/iscsiadm, root
+
+# nova/volume/driver.py
+dmsetup: CommandFilter, /sbin/dmsetup, root
+dmsetup_usr: CommandFilter, /usr/sbin/dmsetup, root
diff --git a/nova/volume/driver.py b/nova/volume/driver.py
index f7cd9fb57..bb80d9f93 100644
--- a/nova/volume/driver.py
+++ b/nova/volume/driver.py
@@ -142,6 +142,10 @@ class VolumeDriver(object):
# zero out old volumes to prevent data leaking between users
# TODO(ja): reclaiming space should be done lazy and low priority
self._copy_volume('/dev/zero', self.local_path(volume), size_in_g)
+ dev_path = self.local_path(volume)
+ if os.path.exists(dev_path):
+ self._try_execute('dmsetup', 'remove', '-f', dev_path,
+ run_as_root=True)
self._try_execute('lvremove', '-f', "%s/%s" %
(FLAGS.volume_group,
self._escape_snapshot(volume['name'])),