diff --git a/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java b/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java index 968c58611bb..2cd80aebea1 100644 --- a/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java +++ b/core/src/main/java/com/cloud/agent/api/GetUnmanagedInstancesCommand.java @@ -19,6 +19,8 @@ package com.cloud.agent.api; import java.util.List; +import org.apache.commons.collections.CollectionUtils; + /** * Unmanaged instances are those virtual machines which are present at hypervisor end but not available in CloudStack. * Such virtual machines might have been created out of band, directly from hypervisor. @@ -56,7 +58,7 @@ public class GetUnmanagedInstancesCommand extends Command { } public boolean hasManagedInstance(String name) { - if (managedInstancesNames!=null && !managedInstancesNames.isEmpty()) { + if (CollectionUtils.isNotEmpty(managedInstancesNames)) { return managedInstancesNames.contains(name); } return false; 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 aa26f63b3a9..8b833b8221a 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 @@ -38,6 +38,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Random; import java.util.Set; import java.util.TimeZone; @@ -47,12 +48,6 @@ import java.util.stream.Collectors; import javax.naming.ConfigurationException; import javax.xml.datatype.XMLGregorianCalendar; -import com.cloud.agent.api.PatchSystemVmAnswer; -import com.cloud.agent.api.PatchSystemVmCommand; -import com.cloud.resource.ServerResourceBase; -import com.cloud.utils.FileUtil; -import com.cloud.utils.LogUtils; -import com.cloud.utils.validation.ChecksumUtil; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.storage.command.CopyCommand; import org.apache.cloudstack.storage.command.StorageSubSystemCommand; @@ -66,8 +61,8 @@ import org.apache.cloudstack.vm.UnmanagedInstanceTO; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.apache.log4j.NDC; import org.joda.time.Duration; @@ -137,6 +132,8 @@ import com.cloud.agent.api.ModifyTargetsAnswer; import com.cloud.agent.api.ModifyTargetsCommand; import com.cloud.agent.api.NetworkUsageAnswer; import com.cloud.agent.api.NetworkUsageCommand; +import com.cloud.agent.api.PatchSystemVmAnswer; +import com.cloud.agent.api.PatchSystemVmCommand; import com.cloud.agent.api.PingCommand; import com.cloud.agent.api.PingRoutingCommand; import com.cloud.agent.api.PingTestCommand; @@ -260,6 +257,7 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.network.VmwareTrafficLabel; import com.cloud.network.router.VirtualRouterAutoScale; import com.cloud.resource.ServerResource; +import com.cloud.resource.ServerResourceBase; import com.cloud.serializer.GsonHelper; import com.cloud.storage.Storage; import com.cloud.storage.Storage.StoragePoolType; @@ -274,6 +272,8 @@ import com.cloud.storage.template.TemplateProp; import com.cloud.template.TemplateManager; import com.cloud.utils.DateUtil; import com.cloud.utils.ExecutionResult; +import com.cloud.utils.FileUtil; +import com.cloud.utils.LogUtils; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.Ternary; @@ -286,6 +286,7 @@ import com.cloud.utils.net.NetUtils; import com.cloud.utils.nicira.nvp.plugin.NiciraNvpApiVersion; import com.cloud.utils.script.Script; import com.cloud.utils.ssh.SshHelper; +import com.cloud.utils.validation.ChecksumUtil; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.PowerState; import com.cloud.vm.VirtualMachineName; @@ -7371,7 +7372,10 @@ public class VmwareResource extends ServerResourceBase implements StoragePoolRes continue; } // Filter managed instances - if (cmd.hasManagedInstance(vmMo.getName())) { + if (cmd.hasManagedInstance(vmMo.getName()) || + (StringUtils.isNotEmpty(vmMo.getInternalCSName()) + && Objects.equals(vmMo.getName(), vmMo.getInternalCSName()) + && cmd.hasManagedInstance(vmMo.getInternalCSName()))) { continue; } // Filter instance if answer is requested for a particular instance name