diff options
| author | Chuck Short <zulcss@ubuntu.com> | 2011-03-09 21:43:45 -0500 |
|---|---|---|
| committer | Chuck Short <zulcss@ubuntu.com> | 2011-03-09 21:43:45 -0500 |
| commit | e502ad0243962aca98cc28bfa5cf69f8cd08991c (patch) | |
| tree | ed60c39b8a85d6db57e34a788df68a43756127be /nova/virt | |
| parent | 7a5915dc4f575ed08b4e4645286e4efe1cf835e2 (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.py | 8 | ||||
| -rw-r--r-- | nova/virt/libvirt_conn.py | 2 |
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) |
