summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorChristian Berendt <berendt@b1-systems.de>2012-01-26 09:25:17 +0100
committerChristian Berendt <berendt@b1-systems.de>2012-01-26 22:29:30 +0100
commit7b5e9079415bcdb7c3514822e1d5cb7c67c267ce (patch)
treeb1bb16571def4c74017f9bae9d74404166b0afec /nova
parente1802d8447a0299816a0f1ffa6fbaa6111591070 (diff)
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
Diffstat (limited to 'nova')
-rw-r--r--nova/tests/test_libvirt.py16
-rw-r--r--nova/virt/libvirt.xml.template1
-rw-r--r--nova/virt/libvirt/connection.py1
3 files changed, 18 insertions, 0 deletions
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 @@
<domain type='${type}'>
+ <uuid>${uuid}</uuid>
<name>${name}</name>
<memory>${memory_kb}</memory>
<os>
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,