diff options
| -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'])), |
