summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/tests/test_libvirt_config.py16
-rw-r--r--nova/virt/libvirt/config.py4
2 files changed, 20 insertions, 0 deletions
diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py
index e270ca2aa..a00d5b572 100644
--- a/nova/tests/test_libvirt_config.py
+++ b/nova/tests/test_libvirt_config.py
@@ -319,6 +319,22 @@ class LibvirtConfigGuestDiskTest(LibvirtConfigBaseTest):
<target bus="ide" dev="/dev/hda"/>
</disk>""")
+ def test_config_file_serial(self):
+ obj = config.LibvirtConfigGuestDisk()
+ obj.source_type = "file"
+ obj.source_path = "/tmp/hello"
+ obj.target_dev = "/dev/hda"
+ obj.target_bus = "ide"
+ obj.serial = "7a97c4a3-6f59-41d4-bf47-191d7f97f8e9"
+
+ xml = obj.to_xml()
+ self.assertXmlEqual(xml, """
+ <disk type="file" device="disk">
+ <source file="/tmp/hello"/>
+ <target bus="ide" dev="/dev/hda"/>
+ <serial>7a97c4a3-6f59-41d4-bf47-191d7f97f8e9</serial>
+ </disk>""")
+
def test_config_block(self):
obj = config.LibvirtConfigGuestDisk()
obj.source_type = "block"
diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py
index 8a924df56..4c3483cb9 100644
--- a/nova/virt/libvirt/config.py
+++ b/nova/virt/libvirt/config.py
@@ -363,6 +363,7 @@ class LibvirtConfigGuestDisk(LibvirtConfigGuestDevice):
self.auth_username = None
self.auth_secret_type = None
self.auth_secret_uuid = None
+ self.serial = None
def format_dom(self):
dev = super(LibvirtConfigGuestDisk, self).format_dom()
@@ -404,6 +405,9 @@ class LibvirtConfigGuestDisk(LibvirtConfigGuestDevice):
dev.append(etree.Element("target", dev=self.target_dev,
bus=self.target_bus))
+ if self.serial is not None:
+ dev.append(self._text_node("serial", self.serial))
+
return dev