diff options
author | Rafi Khardalian <rafi@metacloud.com> | 2012-09-05 16:09:45 +0000 |
---|---|---|
committer | Rafi Khardalian <rafi@metacloud.com> | 2012-09-17 20:36:09 +0000 |
commit | d05637f99271e081f9579b69cf77de1969839561 (patch) | |
tree | cc5b250a7c8a528a7b3e84659674af85d033313d | |
parent | 725c99b2a9a05c905b6ff9455d47917c39be9f57 (diff) | |
download | nova-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.filters | 4 | ||||
-rw-r--r-- | nova/volume/driver.py | 4 |
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'])), |