diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 56d08a4e088e..c168277eaaf5 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -7239,7 +7239,9 @@ private List getUnmanageInstanceDisks(VirtualMachineMO instanceDisk.setController(DiskControllerType.getType(device.getClass().getSimpleName()).toString()); instanceDisk.setControllerUnit(((VirtualSCSIController) device).getBusNumber()); } else { - instanceDisk.setController(DiskControllerType.none.toString()); + String msg = String.format("Controller of disk %s is unsupported", instanceDisk.getLabel()); + s_logger.error(msg); + throw new Exception(msg); } break; } @@ -7264,6 +7266,7 @@ private List getUnmanageInstanceDisks(VirtualMachineMO instanceDisks.add(instanceDisk); } } catch (Exception e) { + instanceDisks.clear(); s_logger.info("Unable to retrieve unmanaged instance disk info. " + e.getMessage()); } } @@ -7274,9 +7277,7 @@ public int compare(final UnmanagedInstanceTO.Disk disk1, final UnmanagedInstance } int extractInt(UnmanagedInstanceTO.Disk disk) { - String num = disk.getLabel().replaceAll("\\D", ""); - // return 0 if no digits found - return num.isEmpty() ? 0 : Integer.parseInt(num); + return disk.getPosition() + (disk.getControllerUnit() * 100); } }); }