diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py index e270ca2aacb..a00d5b57281 100644 --- a/nova/tests/test_libvirt_config.py +++ b/nova/tests/test_libvirt_config.py @@ -319,6 +319,22 @@ def test_config_file(self): """) + 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, """ + + + + 7a97c4a3-6f59-41d4-bf47-191d7f97f8e9 + """) + 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 8a924df565d..4c3483cb98e 100644 --- a/nova/virt/libvirt/config.py +++ b/nova/virt/libvirt/config.py @@ -363,6 +363,7 @@ def __init__(self, **kwargs): 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 @@ def format_dom(self): 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