From 55398ee185573d1d2177be8225d36ba74ae6a4f2 Mon Sep 17 00:00:00 2001 From: Anshul Gangwar Date: Fri, 9 May 2014 14:32:36 +0530 Subject: [PATCH] CLOUDSTACK-6399: When there are no vms running on hyperv host, then agent was returning null. In that case cloudstack was not doing anything and not updating the state of the vms to stopped. Now the agent returns empty list of hostvmstatereport. Management server will then update the vm state to stopped (instead of not acting upon the return state). --- .../resource/HypervDirectConnectResource.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/resource/HypervDirectConnectResource.java b/plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/resource/HypervDirectConnectResource.java index 12fc39d1973..412df4f06e6 100644 --- a/plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/resource/HypervDirectConnectResource.java +++ b/plugins/hypervisors/hyperv/src/com/cloud/hypervisor/hyperv/resource/HypervDirectConnectResource.java @@ -90,10 +90,10 @@ import com.cloud.agent.api.SetupGuestNetworkCommand; import com.cloud.agent.api.StartCommand; import com.cloud.agent.api.StartupCommand; import com.cloud.agent.api.StartupRoutingCommand; -import com.cloud.agent.api.UnPlugNicAnswer; -import com.cloud.agent.api.UnPlugNicCommand; import com.cloud.agent.api.StartupRoutingCommand.VmState; import com.cloud.agent.api.StartupStorageCommand; +import com.cloud.agent.api.UnPlugNicAnswer; +import com.cloud.agent.api.UnPlugNicCommand; import com.cloud.agent.api.UnsupportedAnswer; import com.cloud.agent.api.check.CheckSshAnswer; import com.cloud.agent.api.check.CheckSshCommand; @@ -356,8 +356,12 @@ public class HypervDirectConnectResource extends ServerResourceBase implements S } s_logger.debug("HostVmStateReportCommand received response " + s_gson.toJson(result)); - if (!result.isEmpty()) { - return result; + if (result != null) { + if (!result.isEmpty()) { + return result; + } else { + return new ArrayList>(); + } } return null; } @@ -365,7 +369,7 @@ public class HypervDirectConnectResource extends ServerResourceBase implements S protected HashMap getHostVmStateReport() { final HashMap vmStates = new HashMap(); ArrayList> vmList = requestHostVmStateReport(); - if (vmList == null || vmList.isEmpty()) { + if (vmList == null) { return null; }