From 7b5e9079415bcdb7c3514822e1d5cb7c67c267ce Mon Sep 17 00:00:00 2001 From: Christian Berendt Date: Thu, 26 Jan 2012 09:25:17 +0100 Subject: uses the instance uuid in libvirt by introducing a new variable 'uuid' for the used template instead of using a random uuid in libvirt fixes bug 917736 Change-Id: I1f8ba92878fb01cb25a7007839649e1ef7c4fcdc --- nova/tests/test_libvirt.py | 16 ++++++++++++++++ nova/virt/libvirt.xml.template | 1 + nova/virt/libvirt/connection.py | 1 + 3 files changed, 18 insertions(+) (limited to 'nova') diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py index 2dfa277c5..3b773ee97 100644 --- a/nova/tests/test_libvirt.py +++ b/nova/tests/test_libvirt.py @@ -389,6 +389,10 @@ class LibvirtConnTestCase(test.TestCase): self._check_xml_and_uri(instance_data, expect_kernel=True, expect_ramdisk=True, rescue=True) + def test_xml_uuid(self): + instance_data = dict(self.test_instance) + self._check_xml_and_uuid(instance_data) + def test_lxc_container_and_uri(self): instance_data = dict(self.test_instance) self._check_xml_and_container(instance_data) @@ -662,6 +666,18 @@ class LibvirtConnTestCase(test.TestCase): device_type) self.assertEqual(tree.find('./devices/disk/target').get('bus'), bus) + def _check_xml_and_uuid(self, image_meta): + user_context = context.RequestContext(self.user_id, self.project_id) + instance_ref = db.instance_create(user_context, self.test_instance) + network_info = _fake_network_info(self.stubs, 1) + + xml = connection.LibvirtConnection(True).to_xml(instance_ref, + network_info, + image_meta) + tree = xml_to_tree(xml) + self.assertEqual(tree.find('./uuid').text, + instance_ref['uuid']) + def _check_xml_and_uri(self, instance, expect_ramdisk, expect_kernel, rescue=False): user_context = context.RequestContext(self.user_id, self.project_id) diff --git a/nova/virt/libvirt.xml.template b/nova/virt/libvirt.xml.template index 5b464a2d8..92f04facb 100644 --- a/nova/virt/libvirt.xml.template +++ b/nova/virt/libvirt.xml.template @@ -1,4 +1,5 @@ + ${uuid} ${name} ${memory_kb} diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py index 1c8774548..df0cd5725 100644 --- a/nova/virt/libvirt/connection.py +++ b/nova/virt/libvirt/connection.py @@ -1134,6 +1134,7 @@ class LibvirtConnection(driver.ComputeDriver): xml_info = {'type': FLAGS.libvirt_type, 'name': instance['name'], + 'uuid': instance['uuid'], 'basepath': os.path.join(FLAGS.instances_path, instance['name']), 'memory_kb': inst_type['memory_mb'] * 1024, -- cgit