This is an automated email from the ASF dual-hosted git repository.

shwstppr pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new 27a3d617292 Fix unmanage VM marvin tests and small UI fixes for import 
(#8338)
27a3d617292 is described below

commit 27a3d6172925570d0f2bbdd68b1a42ade263c647
Author: Nicolas Vazquez <[email protected]>
AuthorDate: Wed Dec 13 01:55:05 2023 -0300

    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
---
 .../hypervisor/vmware/resource/VmwareResource.java     |  3 +++
 ui/src/views/tools/ImportUnmanagedInstance.vue         | 18 ++++++++++++++----
 .../com/cloud/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 @@
                   </template>
                   <span>{{ 
$t('message.ip.address.changes.effect.after.vm.restart') }}</span>
                 </a-form-item>
-                <a-row :gutter="12" justify="end">
+                <a-row v-if="selectedVmwareVcenter" :gutter="12" justify="end">
                   <a-col style="text-align: right">
                     <a-form-item name="forced" ref="forced">
                       <template #label>
                         <tooltip-label
-                          :title="selectedVmwareVcenter ? 
$t('label.allow.duplicate.macaddresses') : $t('label.forced')"
+                          :title="$t('label.allow.duplicate.macaddresses')"
                           :tooltip="apiParams.forced.description"/>
                       </template>
                       <a-switch v-model:checked="form.forced" @change="val => 
{ switches.forced = val }" />
@@ -294,15 +294,25 @@
                   </template>
                 </a-alert>
               </a-row>
-              <a-row :gutter="12">
+              <a-row v-if="!selectedVmwareVcenter" :gutter="12">
                 <a-col :md="24" :lg="12">
-                  <a-form-item name="migrateallowed" ref="migrateallowed" 
v-if="!selectedVmwareVcenter">
+                  <a-form-item name="migrateallowed" ref="migrateallowed">
                     <template #label>
                       <tooltip-label :title="$t('label.migrate.allowed')" 
:tooltip="apiParams.migrateallowed.description"/>
                     </template>
                     <a-switch v-model:checked="form.migrateallowed" 
@change="val => { switches.migrateAllowed = val }" />
                   </a-form-item>
                 </a-col>
+                <a-col>
+                  <a-form-item name="forced" ref="forced">
+                    <template #label>
+                      <tooltip-label
+                        :title="$t('label.forced')"
+                        :tooltip="apiParams.forced.description"/>
+                    </template>
+                    <a-switch v-model:checked="form.forced" @change="val => { 
switches.forced = val }" />
+                  </a-form-item>
+                </a-col>
               </a-row>
               <div :span="24" class="action-button">
                 <a-button @click="closeAction">{{ $t('label.cancel') 
}}</a-button>
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")) {

Reply via email to