mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-11 12:46:49 +00:00
feat(instances): a CD-ROM is added on the bus chosen, with its ISO
A running VM got its new CD-ROM on SCSI, the one bus the panel could plug in then, and Windows does not see a virtio-scsi drive before the driver on that ISO is installed. Add CD-ROM is now a dialog that chooses the bus and the ISO: a running VM takes USB, first, which every guest sees and which hot-plugs, or SCSI; a shut-off one SATA (IDE on pc), SCSI or USB. libvirt has no empty USB drive, so a USB CD-ROM takes its ISO when it is added and is detached instead of ejected, also while the VM runs. A USB CD-ROM is a CD drive on QEMU's usb-bot only. Where QEMU has none (RHEL 9), libvirt took usb-storage, which shows the guest a hard disk that Windows does not read; the drive now asks for usb-bot, and such a host refuses it with libvirt's message.
This commit is contained in:
parent
0cd687e035
commit
2a05576e18
9 changed files with 313 additions and 165 deletions
|
|
@ -91,6 +91,16 @@ class DeviceEditsTestCase(unittest.TestCase):
|
|||
xml, _ = p.instance.attachDeviceFlags.call_args.args
|
||||
self.assertEqual(etree.fromstring(xml).find("source").attrib, {"dev": "/dev/vg/c"})
|
||||
|
||||
def test_a_usb_cdrom_is_a_cd_drive_on_usb_bot(self):
|
||||
# usb-storage, libvirt's choice where QEMU has no usb-bot, shows a hard disk
|
||||
for bus, model in (("usb", "usb-bot"), ("sata", None)):
|
||||
with self.subTest(bus=bus):
|
||||
p = proxy(active=False)
|
||||
p._definitions = lambda: [(PERSISTENT_XML, VIR_DOMAIN_AFFECT_CONFIG)]
|
||||
p.attach_disk("sdb", "/iso/virtio-win.iso", disk_device="cdrom", target_bus=bus, readonly=True)
|
||||
xml, _ = p.instance.attachDeviceFlags.call_args.args
|
||||
self.assertEqual(etree.fromstring(xml).get("model"), model)
|
||||
|
||||
def test_a_bridge_nic_can_be_a_boot_device(self):
|
||||
p = proxy()
|
||||
p.set_bootorder({0: {"type": "network", "dev": "52:54:10:00:00:02"}, 1: {"type": "disk", "dev": "vdb"}})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue