From 27a3d6172925570d0f2bbdd68b1a42ade263c647 Mon Sep 17 00:00:00 2001 From: Nicolas Vazquez Date: Wed, 13 Dec 2023 01:55:05 -0300 Subject: [PATCH] Fix unmanage VM marvin tests and small UI fixes for import (#8338) This PR fixes the failing smoke test for test_vm_lifecycle_unmanage_import.py for Vmware and adds a small UI fix on the import wizard --- .../vmware/resource/VmwareResource.java | 3 +++ ui/src/views/tools/ImportUnmanagedInstance.vue | 18 ++++++++++++++---- .../hypervisor/vmware/util/VmwareHelper.java | 18 +++++++++++------- 3 files changed, 28 insertions(+), 11 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 3e14c0eb975..6c457273bc3 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 @@ -54,6 +54,7 @@ import com.vmware.vim25.FileQueryFlags; import com.vmware.vim25.FolderFileInfo; import com.vmware.vim25.HostDatastoreBrowserSearchResults; import com.vmware.vim25.HostDatastoreBrowserSearchSpec; +import com.vmware.vim25.VirtualMachineConfigSummary; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.storage.command.CopyCommand; import org.apache.cloudstack.storage.command.StorageSubSystemCommand; @@ -7154,6 +7155,8 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes } UnmanagedInstanceTO instance = VmwareHelper.getUnmanagedInstance(hyperHost, vmMo); if (instance != null) { + VirtualMachineConfigSummary configSummary = vmMo.getConfigSummary(); + instance.setCpuSpeed(configSummary != null ? configSummary.getCpuReservation() : 0); unmanagedInstances.put(instance.getName(), instance); } } diff --git a/ui/src/views/tools/ImportUnmanagedInstance.vue b/ui/src/views/tools/ImportUnmanagedInstance.vue index 73a2bb96ed1..86decf75d57 100644 --- a/ui/src/views/tools/ImportUnmanagedInstance.vue +++ b/ui/src/views/tools/ImportUnmanagedInstance.vue @@ -266,12 +266,12 @@ {{ $t('message.ip.address.changes.effect.after.vm.restart') }} - + @@ -294,15 +294,25 @@ - + - + + + + + + +
{{ $t('label.cancel') }} diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareHelper.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareHelper.java index 8301dd2a561..3a8aa085f97 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareHelper.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareHelper.java @@ -56,6 +56,7 @@ import com.vmware.vim25.NasDatastoreInfo; import com.vmware.vim25.VMwareDVSPortSetting; import com.vmware.vim25.VirtualDeviceFileBackingInfo; import com.vmware.vim25.VirtualIDEController; +import com.vmware.vim25.VirtualMachineConfigSummary; import com.vmware.vim25.VirtualMachineGuestOsIdentifier; import com.vmware.vim25.VirtualMachineToolsStatus; import com.vmware.vim25.VirtualSCSIController; @@ -797,18 +798,21 @@ public class VmwareHelper { instance = new UnmanagedInstanceTO(); instance.setName(vmMo.getVmName()); instance.setInternalCSName(vmMo.getInternalCSName()); - instance.setCpuCores(vmMo.getConfigSummary().getNumCpu()); instance.setCpuCoresPerSocket(vmMo.getCoresPerSocket()); - instance.setCpuSpeed(vmMo.getConfigSummary().getCpuReservation()); - instance.setMemory(vmMo.getConfigSummary().getMemorySizeMB()); instance.setOperatingSystemId(vmMo.getVmGuestInfo().getGuestId()); + VirtualMachineConfigSummary configSummary = vmMo.getConfigSummary(); + if (configSummary != null) { + instance.setCpuCores(configSummary.getNumCpu()); + instance.setCpuSpeed(configSummary.getCpuReservation()); + instance.setMemory(configSummary.getMemorySizeMB()); + } ClusterMO clusterMo = new ClusterMO(hyperHost.getContext(), hyperHost.getHyperHostCluster()); instance.setClusterName(clusterMo.getName()); instance.setHostName(hyperHost.getHyperHostName()); - if (StringUtils.isEmpty(instance.getOperatingSystemId())) { - instance.setOperatingSystemId(vmMo.getConfigSummary().getGuestId()); + if (StringUtils.isEmpty(instance.getOperatingSystemId()) && configSummary != null) { + instance.setOperatingSystemId(configSummary.getGuestId()); } VirtualMachineGuestOsIdentifier osIdentifier = VirtualMachineGuestOsIdentifier.OTHER_GUEST; try { @@ -819,8 +823,8 @@ public class VmwareHelper { } } instance.setOperatingSystem(vmMo.getGuestInfo().getGuestFullName()); - if (StringUtils.isEmpty(instance.getOperatingSystem())) { - instance.setOperatingSystem(vmMo.getConfigSummary().getGuestFullName()); + if (StringUtils.isEmpty(instance.getOperatingSystem()) && configSummary != null) { + instance.setOperatingSystem(configSummary.getGuestFullName()); } UnmanagedInstanceTO.PowerState powerState = UnmanagedInstanceTO.PowerState.PowerUnknown; if (vmMo.getPowerState().toString().equalsIgnoreCase("POWERED_ON")) {