From e1bc4fcc933661c385dedc20ac040b78f2a36626 Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 7 Sep 2021 15:24:08 -0300 Subject: [PATCH 1/2] use host FQDN if host IP is not found on VNC command --- .../com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 238493557c33..e22adcb6a519 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 @@ -1184,17 +1184,18 @@ public Pair getVncPort(String hostNetworkName) throws Exception VirtualMachineConfigInfo configInfo = getConfigInfo(); List values = configInfo.getExtraConfig(); + String hostKey = StringUtils.isBlank(summary.getHostIp()) ? hostMo.getHostName() : summary.getHostIp(); if (values != null) { for (OptionValue option : values) { if (option.getKey().equals("RemoteDisplay.vnc.port")) { String value = (String)option.getValue(); if (value != null) { - return new Pair(summary.getHostIp(), Integer.parseInt(value)); + return new Pair(hostKey, Integer.parseInt(value)); } } } } - return new Pair(summary.getHostIp(), 0); + return new Pair(hostKey, 0); } // vmdkDatastorePath: [datastore name] vmdkFilePath From 9c5f2561804179c5a4ef898cb964704df1c954c1 Mon Sep 17 00:00:00 2001 From: nicolas Date: Tue, 7 Sep 2021 21:46:58 -0300 Subject: [PATCH 2/2] Refactor --- .../hypervisor/vmware/mo/VirtualMachineMO.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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 e22adcb6a519..37669dbb5d54 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 @@ -38,6 +38,7 @@ import com.cloud.storage.Storage; import com.cloud.utils.exception.CloudRuntimeException; +import com.vmware.vim25.HostDnsConfig; import com.vmware.vim25.InvalidStateFaultMsg; import com.vmware.vim25.RuntimeFaultFaultMsg; import com.vmware.vim25.TaskInfo; @@ -1177,14 +1178,23 @@ public boolean configureVm(Ternary getVncPort(String hostNetworkName) throws Exception { HostMO hostMo = getRunningHost(); VmwareHypervisorHostNetworkSummary summary = hostMo.getHyperHostNetworkSummary(hostNetworkName); VirtualMachineConfigInfo configInfo = getConfigInfo(); List values = configInfo.getExtraConfig(); - - String hostKey = StringUtils.isBlank(summary.getHostIp()) ? hostMo.getHostName() : summary.getHostIp(); + String hostKey = StringUtils.isNotBlank(summary.getHostIp()) ? summary.getHostIp() : getHostFqdn(hostMo, hostMo.getHostName()); if (values != null) { for (OptionValue option : values) { if (option.getKey().equals("RemoteDisplay.vnc.port")) {