summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
authorChuck Short <zulcss@ubuntu.com>2011-03-09 21:43:45 -0500
committerChuck Short <zulcss@ubuntu.com>2011-03-09 21:43:45 -0500
commite502ad0243962aca98cc28bfa5cf69f8cd08991c (patch)
treeed60c39b8a85d6db57e34a788df68a43756127be /nova/virt
parent7a5915dc4f575ed08b4e4645286e4efe1cf835e2 (diff)
Moved umount container to disk.py and try to remove loopback when destroying the container
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/disk.py8
-rw-r--r--nova/virt/libvirt_conn.py2
2 files changed, 9 insertions, 1 deletions
diff --git a/nova/virt/disk.py b/nova/virt/disk.py
index e1b0171b5..484317dd8 100644
--- a/nova/virt/disk.py
+++ b/nova/virt/disk.py
@@ -140,6 +140,14 @@ def setup_container(image, container_dir=None, partition=None, nbd=False):
utils.execute('sudo kpartx -s %s' % device)
_unlink_device(device, nbd)
+def destroy_container(target, instance, nbd=False):
+ """Destroy the container once it terminates"""
+ try:
+ utils.execute('sudo umount %s/rootfs' % target)
+ image = os.path.join(FLAGS.instances_path, instance['name'], '' + 'disk')
+ except Exception as e:
+ LOG.warn(_('Unable to umount contianer'))
+
def _link_device(image, nbd):
"""Link image to device using loopback or nbd"""
if nbd:
diff --git a/nova/virt/libvirt_conn.py b/nova/virt/libvirt_conn.py
index 97997513b..ef0eb20cd 100644
--- a/nova/virt/libvirt_conn.py
+++ b/nova/virt/libvirt_conn.py
@@ -260,7 +260,7 @@ class LibvirtConnection(object):
LOG.info(_('instance %(instance_name)s: deleting instance files'
' %(target)s') % locals())
if FLAGS.libvirt_type == 'lxc':
- utils.execute('sudo umount %s/rootfs' % target)
+ disk.destroy_container(target, instance, nbd=FLAGS.use_cow_images)
if os.path.exists(target):
shutil.rmtree(target)