From e3c8143b284fa7e0b89d276053fcf9e30c80efa3 Mon Sep 17 00:00:00 2001 From: Dirk Klahre Date: Thu, 17 Dec 2020 13:41:07 +0100 Subject: [PATCH 1/4] [#4547] adapt collection sort to get the right root disk --- .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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..6f4d748989a5 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 @@ -7274,9 +7274,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); } }); } From 44d14624e188b9e8065d9c6e7500d435b1bfc767 Mon Sep 17 00:00:00 2001 From: Dirk Klahre Date: Mon, 21 Dec 2020 11:13:26 +0100 Subject: [PATCH 2/4] add exception for unknown controller type --- .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 6f4d748989a5..1169de71457f 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("Abort ingest process because controller of volume %s is unsupported", instanceDisk.getLabel()); + s_logger.error(msg); + throw new Exception(msg); } break; } From 894758f647f3dc45c0c0737f71387a91017f6d4b Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 22 Dec 2020 16:14:48 +0530 Subject: [PATCH 3/4] Update plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java Co-authored-by: Abhishek Kumar --- .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1169de71457f..f2466d310ce7 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,7 @@ private List getUnmanageInstanceDisks(VirtualMachineMO instanceDisk.setController(DiskControllerType.getType(device.getClass().getSimpleName()).toString()); instanceDisk.setControllerUnit(((VirtualSCSIController) device).getBusNumber()); } else { - String msg = String.format("Abort ingest process because controller of volume %s is unsupported", instanceDisk.getLabel()); + String msg = String.format("Controller of disk %s is unsupported", instanceDisk.getLabel()); s_logger.error(msg); throw new Exception(msg); } From 8e51f1e1bb9b32e0d02217c2c862a6e548c76284 Mon Sep 17 00:00:00 2001 From: Dirk Klahre Date: Tue, 22 Dec 2020 13:33:28 +0100 Subject: [PATCH 4/4] clear disk list in case of exception to prevent ingest --- .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 1 + 1 file changed, 1 insertion(+) 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 f2466d310ce7..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 @@ -7266,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()); } }