diff --git a/api/src/main/java/org/apache/cloudstack/vm/UnmanagedInstanceTO.java b/api/src/main/java/org/apache/cloudstack/vm/UnmanagedInstanceTO.java index 860ecdc3ba1..95675f2bf34 100644 --- a/api/src/main/java/org/apache/cloudstack/vm/UnmanagedInstanceTO.java +++ b/api/src/main/java/org/apache/cloudstack/vm/UnmanagedInstanceTO.java @@ -29,6 +29,8 @@ public class UnmanagedInstanceTO { private String name; + private String internalCSName; + private PowerState powerState; private Integer cpuCores; @@ -55,6 +57,14 @@ public class UnmanagedInstanceTO { this.name = name; } + public String getInternalCSName() { + return internalCSName; + } + + public void setInternalCSName(String internalCSName) { + this.internalCSName = internalCSName; + } + public PowerState getPowerState() { return powerState; } 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 db277e3f122..0248903173b 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 @@ -7277,6 +7277,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa try { 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()); diff --git a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java index a470486b62c..07cf567b7e3 100644 --- a/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/vm/UnmanagedVMsManagerImpl.java @@ -956,6 +956,10 @@ public class UnmanagedVMsManagerImpl implements UnmanagedVMsManager { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, String.format("Failed to import VM: %s. %s", unmanagedInstance.getName(), Strings.nullToEmpty(e.getMessage()))); } + String internalCSName = unmanagedInstance.getInternalCSName(); + if(StringUtils.isEmpty(internalCSName)){ + internalCSName = instanceName; + } Map allDetails = new HashMap<>(details); if (validatedServiceOffering.isDynamic()) { allDetails.put(VmDetailConstants.CPU_NUMBER, String.valueOf(validatedServiceOffering.getCpu())); @@ -1002,7 +1006,7 @@ public class UnmanagedVMsManagerImpl implements UnmanagedVMsManager { powerState = VirtualMachine.PowerState.PowerOn; } try { - userVm = userVmManager.importVM(zone, host, template, instanceName, displayName, owner, + userVm = userVmManager.importVM(zone, host, template, internalCSName, displayName, owner, null, caller, true, null, owner.getAccountId(), userId, validatedServiceOffering, null, hostName, cluster.getHypervisorType(), allDetails, powerState); diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HostMO.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HostMO.java index ac419b24341..ab3f109e19e 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HostMO.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HostMO.java @@ -579,8 +579,9 @@ public class HostMO extends BaseMO implements VmwareHypervisorHost { if (s_logger.isTraceEnabled()) s_logger.trace("put " + vmName + " into host cache"); - - _vmCache.put(vmName, new VirtualMachineMO(_context, oc.getObj())); + VirtualMachineMO virtualMachine = new VirtualMachineMO(_context, oc.getObj()); + virtualMachine.setInternalCSName(vmName); + _vmCache.put(vmName, virtualMachine); } } } 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 04fe65dc986..c99286b68c1 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 @@ -130,6 +130,15 @@ public class VirtualMachineMO extends BaseMO { public static final String ANSWER_NO = "1"; private ManagedObjectReference _vmEnvironmentBrowser = null; + private String internalCSName; + + public String getInternalCSName() { + return internalCSName; + } + + public void setInternalCSName(String internalVMName) { + this.internalCSName = internalVMName; + } public VirtualMachineMO(VmwareContext context, ManagedObjectReference morVm) { super(context, morVm);