From 56e0450526639513a68176fbc8ab87e738b3f8d8 Mon Sep 17 00:00:00 2001 From: dahn Date: Wed, 28 Feb 2024 10:59:35 +0100 Subject: [PATCH] Logging improvements on migration in the VmwareResource (#8300) --- .../hypervisor/vmware/resource/VmwareResource.java | 12 +++++++++++- 1 file changed, 11 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 22d0a796e14..b65a7847675 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 @@ -4766,7 +4766,13 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes final String vmName = cmd.getVmName(); try { VmwareHypervisorHost hyperHost = getHyperHost(getServiceContext()); + if (hyperHost == null) { + throw new CloudRuntimeException("no hypervisor host found for migrate command"); + } ManagedObjectReference morDc = hyperHost.getHyperHostDatacenter(); + if (morDc == null) { + throw new CloudRuntimeException("no Managed Object Reference for the Data Center found for migrate command"); + } // find VM through datacenter (VM is not at the target host yet) VirtualMachineMO vmMo = hyperHost.findVmOnPeerHyperHost(vmName); @@ -4777,6 +4783,9 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes } VmwareHypervisorHost destHyperHost = getTargetHyperHost(new DatacenterMO(hyperHost.getContext(), morDc), cmd.getDestinationIp()); + if (destHyperHost == null) { + throw new CloudRuntimeException("no destination Hypervisor Host found for migrate command"); + } ManagedObjectReference morTargetPhysicalHost = destHyperHost.findMigrationTarget(vmMo); if (morTargetPhysicalHost == null) { @@ -4788,7 +4797,8 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes } return new MigrateAnswer(cmd, true, "migration succeeded", null); - } catch (Throwable e) { + } catch (Exception e) { + s_logger.info(String.format("migrate command for %s failed due to %s", vmName, e.getLocalizedMessage())); return new MigrateAnswer(cmd, false, createLogMessageException(e, cmd), null); } }