You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2014/03/01 00:37:26 UTC
[06/33] git commit: updated refs/heads/master to 90262a8
disable XS full host sync and delta sync when new sync model is enabled
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/206a9ed5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/206a9ed5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/206a9ed5
Branch: refs/heads/master
Commit: 206a9ed53fbd228a9af675576f486d18887b4dc9
Parents: 90ea324
Author: Kelven Yang <ke...@gmail.com>
Authored: Fri Jan 24 16:55:54 2014 -0800
Committer: Kelven Yang <ke...@gmail.com>
Committed: Fri Feb 28 15:35:57 2014 -0800
----------------------------------------------------------------------
.../com/cloud/vm/VirtualMachineManagerImpl.java | 83 +++++++++++---------
1 file changed, 44 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/206a9ed5/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 f944d7e..1dae94d 100755
--- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -2925,12 +2925,14 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
@Override
public boolean processAnswers(long agentId, long seq, Answer[] answers) {
- for (final Answer answer : answers) {
- if (answer instanceof ClusterSyncAnswer) {
- ClusterSyncAnswer hs = (ClusterSyncAnswer)answer;
- if (!hs.isExceuted()) {
- deltaSync(hs.getNewStates());
- hs.setExecuted();
+ if (!VmJobEnabled.value()) {
+ for (final Answer answer : answers) {
+ if (answer instanceof ClusterSyncAnswer) {
+ ClusterSyncAnswer hs = (ClusterSyncAnswer)answer;
+ if (!hs.isExceuted()) {
+ deltaSync(hs.getNewStates());
+ hs.setExecuted();
+ }
}
}
}
@@ -3018,48 +3020,51 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
long agentId = agent.getId();
if (agent.getHypervisorType() == HypervisorType.XenServer) { // only for Xen
- StartupRoutingCommand startup = (StartupRoutingCommand)cmd;
- HashMap<String, Ternary<String, State, String>> allStates = startup.getClusterVMStateChanges();
- if (allStates != null) {
- fullSync(clusterId, allStates);
- }
+ if (!VmJobEnabled.value()) {
+ StartupRoutingCommand startup = (StartupRoutingCommand)cmd;
+ HashMap<String, Ternary<String, State, String>> allStates = startup.getClusterVMStateChanges();
+ if (allStates != null) {
+ fullSync(clusterId, allStates);
+ }
- // initiate the cron job
- ClusterSyncCommand syncCmd = new ClusterSyncCommand(ClusterDeltaSyncInterval.value(), clusterId);
- try {
- long seq_no = _agentMgr.send(agentId, new Commands(syncCmd), this);
- s_logger.debug("Cluster VM sync started with jobid " + seq_no);
- } catch (AgentUnavailableException e) {
- s_logger.fatal("The Cluster VM sync process failed for cluster id " + clusterId + " with ", e);
+ // initiate the cron job
+ ClusterSyncCommand syncCmd = new ClusterSyncCommand(ClusterDeltaSyncInterval.value(), clusterId);
+ try {
+ long seq_no = _agentMgr.send(agentId, new Commands(syncCmd), this);
+ s_logger.debug("Cluster VM sync started with jobid " + seq_no);
+ } catch (AgentUnavailableException e) {
+ s_logger.fatal("The Cluster VM sync process failed for cluster id " + clusterId + " with ", e);
+ }
}
} else { // for others KVM and VMWare
- StartupRoutingCommand startup = (StartupRoutingCommand)cmd;
- Commands commands = fullHostSync(agentId, startup);
+ if (!VmJobEnabled.value()) {
+ StartupRoutingCommand startup = (StartupRoutingCommand)cmd;
+ Commands commands = fullHostSync(agentId, startup);
- if (commands.size() > 0) {
- s_logger.debug("Sending clean commands to the agent");
+ if (commands.size() > 0) {
+ s_logger.debug("Sending clean commands to the agent");
- try {
- boolean error = false;
- Answer[] answers = _agentMgr.send(agentId, commands);
- for (Answer answer : answers) {
- if (!answer.getResult()) {
- s_logger.warn("Unable to stop a VM due to " + answer.getDetails());
- error = true;
+ try {
+ boolean error = false;
+ Answer[] answers = _agentMgr.send(agentId, commands);
+ for (Answer answer : answers) {
+ if (!answer.getResult()) {
+ s_logger.warn("Unable to stop a VM due to " + answer.getDetails());
+ error = true;
+ }
}
+ if (error) {
+ throw new ConnectionException(true, "Unable to stop VMs");
+ }
+ } catch (final AgentUnavailableException e) {
+ s_logger.warn("Agent is unavailable now", e);
+ throw new ConnectionException(true, "Unable to sync", e);
+ } catch (final OperationTimedoutException e) {
+ s_logger.warn("Agent is unavailable now", e);
+ throw new ConnectionException(true, "Unable to sync", e);
}
- if (error) {
- throw new ConnectionException(true, "Unable to stop VMs");
- }
- } catch (final AgentUnavailableException e) {
- s_logger.warn("Agent is unavailable now", e);
- throw new ConnectionException(true, "Unable to sync", e);
- } catch (final OperationTimedoutException e) {
- s_logger.warn("Agent is unavailable now", e);
- throw new ConnectionException(true, "Unable to sync", e);
}
}
-
}
}