Repository: cloudstack Updated Branches: refs/heads/master f3252db79 -> 55b4ead49
CLOUDSTACK-7598: When a vm deployed by cloudstack is stopped on the hypervisor (outside cloudstack), the state of the vm is not updated in cloudstack db. The ping task was not checking for resource (host) status by default. The power state of the vms is returned as part of the resource status. Fixed the issue by making sure ping task atleast tries once to get the resource status. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/55b4ead4 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/55b4ead4 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/55b4ead4 Branch: refs/heads/master Commit: 55b4ead49594212ba55bfcf7007b0cae11bf68ba Parents: f3252db Author: Devdeep Singh <devd...@gmail.com> Authored: Thu Sep 25 13:10:12 2014 +0530 Committer: Devdeep Singh <devd...@gmail.com> Committed: Thu Sep 25 13:13:56 2014 +0530 ---------------------------------------------------------------------- .../src/com/cloud/agent/manager/DirectAgentAttache.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/55b4ead4/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java ---------------------------------------------------------------------- diff --git a/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java b/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java index 9cf643f..f39bf1d 100755 --- a/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java +++ b/engine/orchestration/src/com/cloud/agent/manager/DirectAgentAttache.java @@ -166,11 +166,13 @@ public class DirectAgentAttache extends AgentAttache { if (resource != null) { PingCommand cmd = null; int retried = 0; - while ( cmd == null && ++retried < _HostPingRetryCount.value()) + cmd = resource.getCurrentStatus(_id); + while (cmd == null && retried++ < _HostPingRetryCount.value()) { - cmd = resource.getCurrentStatus(_id); Thread.sleep(1000*_HostPingRetryTimer.value()); + cmd = resource.getCurrentStatus(_id); } + if (cmd == null) { s_logger.warn("Unable to get current status on " + _id + "(" + _name + ")"); return;