From 6d843adb6fa41683db3c5507017e381eb5ecfb23 Mon Sep 17 00:00:00 2001 From: Fabricio Duarte Date: Thu, 5 Sep 2024 10:28:28 -0300 Subject: [PATCH 1/2] Consider CD/DVD drive when calculating next free IDE unit number on volume attachment --- .../com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java index 742f33575f50..b6077eb5b151 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java @@ -3171,7 +3171,10 @@ public int getFreeUnitNumberOnIDEController(int controllerKey) throws Exception int ideDeviceUnitNumber = -1; if (devices != null && devices.size() > 0) { for (VirtualDevice device : devices) { - if (device instanceof VirtualDisk && (controllerKey == device.getControllerKey())) { + if (device.getControllerKey() == null || device.getControllerKey() != controllerKey) { + continue; + } + if (device instanceof VirtualDisk || device instanceof VirtualCdrom) { deviceCount++; ideDeviceUnitNumber = device.getUnitNumber(); } From dddfea4fa7a63cba8fa9c5dbbe7967e3da31dec9 Mon Sep 17 00:00:00 2001 From: Fabricio Duarte Date: Mon, 9 Sep 2024 11:40:52 -0300 Subject: [PATCH 2/2] Update vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java Co-authored-by: dahn --- .../java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java index b6077eb5b151..e53d14fc43bf 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java @@ -3169,7 +3169,7 @@ public int getFreeUnitNumberOnIDEController(int controllerKey) throws Exception int deviceCount = 0; int ideDeviceUnitNumber = -1; - if (devices != null && devices.size() > 0) { + if (devices != null) { for (VirtualDevice device : devices) { if (device.getControllerKey() == null || device.getControllerKey() != controllerKey) { continue;