diff --git a/nova/tests/unit/virt/libvirt/test_config.py b/nova/tests/unit/virt/libvirt/test_config.py index b91c685571..5d728a1761 100644 --- a/nova/tests/unit/virt/libvirt/test_config.py +++ b/nova/tests/unit/virt/libvirt/test_config.py @@ -1089,6 +1089,48 @@ class LibvirtConfigGuestDiskTest(LibvirtConfigBaseTest): """) + def test_config_block_serial(self): + obj = config.LibvirtConfigGuestDisk() + obj.source_type = "block" + obj.source_path = "/tmp/hello" + obj.source_device = "cdrom" + obj.driver_name = "qemu" + obj.target_dev = "/dev/hdc" + obj.target_bus = "ide" + obj.alias = "ua-this-is-my-disk" + obj.serial = "123" + + xml = obj.to_xml() + self.assertXmlEqual(xml, """ + + + + + + 123 + """) + + def test_config_block_lun_no_serial(self): + obj = config.LibvirtConfigGuestDisk() + obj.source_type = "block" + obj.source_path = "/tmp/hello" + obj.source_device = "lun" + obj.driver_name = "qemu" + obj.target_dev = "/dev/sda" + obj.target_bus = "scsi" + obj.alias = "ua-this-is-my-disk" + # This should not be included in the XML because source_device=lun + obj.serial = "123" + + xml = obj.to_xml() + self.assertXmlEqual(xml, """ + + + + + + """) + def test_config_block_parse(self): xml = """ diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py index ff1eb925b2..bd5b8cef0f 100644 --- a/nova/virt/libvirt/config.py +++ b/nova/virt/libvirt/config.py @@ -1308,7 +1308,7 @@ class LibvirtConfigGuestDisk(LibvirtConfigGuestDevice): dev.append(etree.Element("target", dev=self.target_dev, bus=self.target_bus)) - if self.serial is not None: + if self.serial is not None and self.source_device != 'lun': dev.append(self._text_node("serial", self.serial)) self._format_iotune(dev)