From 8105bc9af4bbcd4d79ba17b9e960f797ccfc1152 Mon Sep 17 00:00:00 2001 From: unicell Date: Mon, 24 Dec 2012 18:08:56 +0800 Subject: [PATCH] Teardown container rootfs in host namespace for lxc Unlike other hypervisor to directly using image for VM, rootfs need to be mounted in setup_container() for lxc before launching the domain. However, this leads to several problems: * previously spawned container polluted later spawned container, which in turn causing lvm device refused to be removed, as bug descirbes * container rootfs not mounted after nova stop/start sequence This commit addresses above two issues. Fixes bug 1091639 Change-Id: I718baa6e46cf07a5458a5b80d42139dd353ae51c --- nova/tests/test_libvirt.py | 4 ++-- nova/tests/test_virt.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 6e941cb4..02578e88 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -4229,7 +4229,7 @@ class LibvirtDriverTestCase(test.TestCase): block_device_info=None): pass - def fake_create_domain(xml): + def fake_create_domain(xml, inst_name=''): return None def fake_enable_hairpin(instance): @@ -4275,7 +4275,7 @@ class LibvirtDriverTestCase(test.TestCase): def fake_plug_vifs(instance, network_info): pass - def fake_create_domain(xml): + def fake_create_domain(xml, inst_name=''): return None def fake_enable_hairpin(instance): diff --git a/nova/tests/test_virt.py b/nova/tests/test_virt.py index 99d69f33..452277c5 100644 --- a/nova/tests/test_virt.py +++ b/nova/tests/test_virt.py @@ -95,7 +95,7 @@ class TestVirtDisk(test.TestCase): self.stubs.Set(utils, 'execute', fake_execute) - def test_lxc_destroy_container(self): + def test_lxc_teardown_container(self): def proc_mounts(self, mount_point): mount_points = { @@ -110,26 +110,26 @@ class TestVirtDisk(test.TestCase): self.stubs.Set(disk_api._DiskImage, '_device_for_path', proc_mounts) expected_commands = [] - disk_api.destroy_container('/mnt/loop/nopart') + disk_api.teardown_container('/mnt/loop/nopart') expected_commands += [ ('umount', '/dev/loop0'), ('losetup', '--detach', '/dev/loop0'), ] - disk_api.destroy_container('/mnt/loop/part') + disk_api.teardown_container('/mnt/loop/part') expected_commands += [ ('umount', '/dev/mapper/loop0p1'), ('kpartx', '-d', '/dev/loop0'), ('losetup', '--detach', '/dev/loop0'), ] - disk_api.destroy_container('/mnt/nbd/nopart') + disk_api.teardown_container('/mnt/nbd/nopart') expected_commands += [ ('umount', '/dev/nbd15'), ('qemu-nbd', '-d', '/dev/nbd15'), ] - disk_api.destroy_container('/mnt/nbd/part') + disk_api.teardown_container('/mnt/nbd/part') expected_commands += [ ('umount', '/dev/mapper/nbd15p1'), ('kpartx', '-d', '/dev/nbd15'),