Multiple CD-ROM / ISO Support Per VM#13101
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #13101 +/- ##
============================================
+ Coverage 18.75% 18.77% +0.01%
- Complexity 17966 18011 +45
============================================
Files 6160 6164 +4
Lines 552578 552926 +348
Branches 67348 67410 +62
============================================
+ Hits 103660 103799 +139
- Misses 437512 437694 +182
- Partials 11406 11433 +27
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@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 |
Pearl1594
left a comment
There was a problem hiding this comment.
code lgtm. Left a few minor comments.
|
@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 17740 |
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
…host IDs and improve cluster ID retrieval
…gurations during VM boot
…D from candidates based on hypervisor type
|
@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 17862 |
|
@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 17863 |
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
|
@Damans227 can you resolve the merge conflicts |
|
@blueorangutan test |
|
@kiranchavala a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
Lemme take a look. |
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