make sure XS report VM state even if there is no running VM on the host.

Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b21662f8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b21662f8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b21662f8

Branch: refs/heads/master
Commit: b21662f8904dabddb4246418459afa68b2df99c8
Parents: 7ce5e5b
Author: Kelven Yang <[email protected]>
Authored: Mon Feb 24 16:51:58 2014 -0800
Committer: Kelven Yang <[email protected]>
Committed: Fri Feb 28 15:35:59 2014 -0800

----------------------------------------------------------------------
 api/src/org/apache/cloudstack/context/CallContext.java        | 2 ++
 .../src/com/cloud/vm/VirtualMachineManagerImpl.java           | 2 +-
 .../src/com/cloud/vm/VirtualMachinePowerStateSyncImpl.java    | 6 ++++++
 .../cloudstack/framework/jobs/AsyncJobExecutionContext.java   | 2 +-
 .../com/cloud/hypervisor/xen/resource/CitrixResourceBase.java | 7 +++----
 5 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b21662f8/api/src/org/apache/cloudstack/context/CallContext.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/context/CallContext.java 
b/api/src/org/apache/cloudstack/context/CallContext.java
index 0457c33..f80b921 100644
--- a/api/src/org/apache/cloudstack/context/CallContext.java
+++ b/api/src/org/apache/cloudstack/context/CallContext.java
@@ -252,6 +252,8 @@ public class CallContext {
 
         if (!stack.isEmpty()) {
             s_currentContext.set(stack.peek());
+        } else {
+            s_currentContext.set(null);
         }
 
         return context;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b21662f8/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java 
b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 805ecce..6b73f4d 100755
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -3048,7 +3048,7 @@ public class VirtualMachineManagerImpl extends 
ManagerBase implements VirtualMac
                 }
 
                 if(VmJobEnabled.value()) {
-                    if (ping.getHostVmStateReport() != null && 
ping.getHostVmStateReport().size() > 0) {
+                    if (ping.getHostVmStateReport() != null) {
                         _syncMgr.processHostVmStatePingReport(agentId, 
ping.getHostVmStateReport());
                     }
                 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b21662f8/engine/orchestration/src/com/cloud/vm/VirtualMachinePowerStateSyncImpl.java
----------------------------------------------------------------------
diff --git 
a/engine/orchestration/src/com/cloud/vm/VirtualMachinePowerStateSyncImpl.java 
b/engine/orchestration/src/com/cloud/vm/VirtualMachinePowerStateSyncImpl.java
index 635603f..6332958 100644
--- 
a/engine/orchestration/src/com/cloud/vm/VirtualMachinePowerStateSyncImpl.java
+++ 
b/engine/orchestration/src/com/cloud/vm/VirtualMachinePowerStateSyncImpl.java
@@ -66,6 +66,9 @@ public class VirtualMachinePowerStateSyncImpl implements 
VirtualMachinePowerStat
 
     private void processReport(long hostId, Map<Long, 
VirtualMachine.PowerState> translatedInfo) {
 
+        if (s_logger.isDebugEnabled())
+            s_logger.debug("Process VM state report. host: " + hostId + ", 
number of records in report: " + translatedInfo.size());
+
         for (Map.Entry<Long, VirtualMachine.PowerState> entry : 
translatedInfo.entrySet()) {
 
             if (s_logger.isDebugEnabled())
@@ -105,6 +108,9 @@ public class VirtualMachinePowerStateSyncImpl implements 
VirtualMachinePowerStat
                 }
             }
         }
+
+        if (s_logger.isDebugEnabled())
+            s_logger.debug("Done with process of VM state report. host: " + 
hostId);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b21662f8/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJobExecutionContext.java
----------------------------------------------------------------------
diff --git 
a/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJobExecutionContext.java
 
b/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJobExecutionContext.java
index 129d9ca..86c6542 100644
--- 
a/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJobExecutionContext.java
+++ 
b/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJobExecutionContext.java
@@ -207,7 +207,7 @@ public class AsyncJobExecutionContext  {
     public static String getOriginJobId() {
         AsyncJobExecutionContext context = 
AsyncJobExecutionContext.getCurrentExecutionContext();
         if (context != null && context.getJob() != null)
-            return "Job-" + context.getJob().getId();
+            return "" + context.getJob().getId();
 
         return "";
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b21662f8/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
 
b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
index 33e7462..bbe15c8 100644
--- 
a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
+++ 
b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
@@ -324,9 +324,9 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     static {
         s_powerStatesTable = new HashMap<Types.VmPowerState, PowerState>();
         s_powerStatesTable.put(Types.VmPowerState.HALTED, PowerState.PowerOff);
-        s_powerStatesTable.put(Types.VmPowerState.PAUSED, PowerState.PowerOn);
+        s_powerStatesTable.put(Types.VmPowerState.PAUSED, PowerState.PowerOff);
         s_powerStatesTable.put(Types.VmPowerState.RUNNING, PowerState.PowerOn);
-        s_powerStatesTable.put(Types.VmPowerState.SUSPENDED, 
PowerState.PowerOn);
+        s_powerStatesTable.put(Types.VmPowerState.SUSPENDED, 
PowerState.PowerOff);
         s_powerStatesTable.put(Types.VmPowerState.UNRECOGNIZED, 
PowerState.PowerUnknown);
     }
 
@@ -2524,7 +2524,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         }
 
         if (vm_map == null) {
-            return null;
+            return vmStates;
         }
         for (VM.Record record : vm_map.values()) {
             if (record.isControlDomain || record.isASnapshot || 
record.isATemplate) {
@@ -4927,7 +4927,6 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             }
             if (srr.shared) {
                 Host host = Host.getByUuid(conn, _host.uuid);
-
                 boolean found = false;
                 for (PBD pbd : pbds) {
                     PBD.Record pbdr = pbd.getRecord(conn);

Reply via email to