Multiple CD-ROM / ISO Support Per VM#13101
Conversation
|
@blueorangutan package |
|
@Damans227 a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 17708 |
…avior for listByVmId
|
@blueorangutan package |
|
@Damans227 a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17709 |
|
@blueorangutan package |
|
@Damans227 a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 18217 |
kiranchavala
left a comment
There was a problem hiding this comment.
LGTM
Tested manually
Able to attach multiple iso for a vm deployed on a kvm hypervisor based on the global and cluster level setting "vm.iso.max.count"
| Test Case Execution | Result |
|---|---|
| Validate the attach iso operations based on the Effective Cap ( vm.iso.max.count) at Global level | Pass |
| Validate the attach iso operations based on the Effective Cap ( vm.iso.max.count) at Cluster level | Pass |
| Runtime attach and detach of ISOs on a running VM | Pass |
| Runtime attach and detach of ISOs on a stopped VM | Pass |
| Check the listVirtualMachines api response includes isos | Pass |
| Check the detach iso api call with the optional id parameter | Pass |
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
a154173 to
b9304dd
Compare

Description
Adds multiple CD-ROM support per VM on KVM. Today CloudStack allows only one ISO per VM, forcing a manual ISO-swap workflow to install Windows on KVM (Windows installer + VirtIO drivers). After this PR each VM can hold up to
vm.cdrom.max.countISOs simultaneously, each appearing as its own CD-ROM inside the guest.What changes:
detachIsotakes an optionalid(required when multiple ISOs are attached).listVirtualMachinesreturnsisos[]andcdrommaxcount; legacyisoidstill reflects the bootable ISO.vm.iso.max.count(default1). Values above the host-advertised cap fail loudly instead of silent clamping.host.cdrom.max.counthost detail; management reads fromhost_details, no hardcoded hypervisor numbers in management code.vm_iso_maptable holds extra slots;user_vm.iso_idis kept as the bootable pointer. ISO deletion is gated by both tables.Scope: KVM only.
Design doc: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=421957739
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Screenshots (if appropriate):
Screen.Recording.2026-05-04.at.5.20.18.PM.mov
How Has This Been Tested?
TemplateManagerImplTestfor slot allocation, the duplicate-attach check, and the detach-id resolution helper.How did you try to break this feature and the system with this change?
vm.cdrom.max.countabove the host's advertised cap to confirm the validate-and-throw fires on attach/deployuser_vm.iso_idandvm_iso_mapstay in syncisoidinlistVirtualMachines) see no functional change