You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/11/19 18:48:00 UTC
[05/13] incubator-brooklyn git commit: more HA change mode fixes
more HA change mode fixes
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/b9e8e6bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/b9e8e6bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/b9e8e6bc
Branch: refs/heads/master
Commit: b9e8e6bc7bbc267dc80c1621b8f2febd128f8ece
Parents: 288ffd7
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Wed Nov 19 13:36:58 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Wed Nov 19 13:53:07 2014 +0000
----------------------------------------------------------------------
.../brooklyn/config/BrooklynServerConfig.java | 1 -
.../ha/HighAvailabilityManagerImpl.java | 26 ++++++++------------
2 files changed, 10 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9e8e6bc/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/config/BrooklynServerConfig.java b/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
index 02f8dc0..c5ff294 100644
--- a/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
+++ b/core/src/main/java/brooklyn/config/BrooklynServerConfig.java
@@ -30,7 +30,6 @@ import org.slf4j.LoggerFactory;
import brooklyn.catalog.CatalogLoadMode;
import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.event.basic.Sensors;
import brooklyn.management.ManagementContext;
import brooklyn.util.guava.Maybe;
import brooklyn.util.os.Os;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/b9e8e6bc/core/src/main/java/brooklyn/management/ha/HighAvailabilityManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/ha/HighAvailabilityManagerImpl.java b/core/src/main/java/brooklyn/management/ha/HighAvailabilityManagerImpl.java
index 3c1196d..5511c29 100644
--- a/core/src/main/java/brooklyn/management/ha/HighAvailabilityManagerImpl.java
+++ b/core/src/main/java/brooklyn/management/ha/HighAvailabilityManagerImpl.java
@@ -309,18 +309,21 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager {
if (!nodeStateTransitionComplete) throw new IllegalStateException("Cannot switch to AUTO when in the middle of a transition to "+getInternalNodeState());
// else change us to standby, desiring to go to hot standby, and continue to below
setInternalNodeState(ManagementNodeState.STANDBY);
- startMode = HighAvailabilityMode.HOT_STANDBY;
+ startMode = HighAvailabilityMode.HOT_BACKUP;
case HOT_STANDBY:
case STANDBY:
- if (getInternalNodeState()==ManagementNodeState.STANDBY && oldState==ManagementNodeState.INITIALIZING
+ if (getInternalNodeState()==ManagementNodeState.STANDBY && oldState==ManagementNodeState.INITIALIZING && startMode!=HighAvailabilityMode.HOT_BACKUP
&& BrooklynFeatureEnablement.isEnabled(BrooklynFeatureEnablement.FEATURE_DEFAULT_STANDBY_IS_HOT_PROPERTY)) {
// auto requested; not promoted; so it should become hot standby
- setInternalNodeState(ManagementNodeState.HOT_STANDBY);
+ startMode = HighAvailabilityMode.HOT_STANDBY;
}
ManagementPlaneSyncRecord newState = loadManagementPlaneSyncRecord(true);
String masterNodeId = newState.getMasterNodeId();
ManagementNodeSyncRecord masterNodeDetails = newState.getManagementNodes().get(masterNodeId);
- LOG.info("Management node "+ownNodeId+" running as HA " + getInternalNodeState() + " autodetected, " +
+ LOG.info("Management node "+ownNodeId+" running as HA " + getInternalNodeState() + " autodetected"
+ + (startMode == HighAvailabilityMode.HOT_STANDBY || startMode == HighAvailabilityMode.HOT_BACKUP ?
+ " (will change to "+startMode+")" : "")
+ + ", " +
(Strings.isBlank(masterNodeId) ? "no master currently (other node should promote itself soon)" : "master "
+ (existingMaster==null ? "(new) " : "")
+ "is "+masterNodeId +
@@ -402,15 +405,7 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager {
throw new IllegalStateException("Unexpected high availability mode "+startMode+" requested for "+this);
}
- if (startMode==HighAvailabilityMode.AUTO) {
- if (BrooklynFeatureEnablement.isEnabled(BrooklynFeatureEnablement.FEATURE_DEFAULT_STANDBY_IS_HOT_PROPERTY)) {
- startMode = HighAvailabilityMode.HOT_STANDBY;
- } else {
- startMode = HighAvailabilityMode.STANDBY;
- }
- }
- if ((getInternalNodeState()==ManagementNodeState.STANDBY && startMode==HighAvailabilityMode.HOT_STANDBY) ||
- (startMode==HighAvailabilityMode.HOT_BACKUP && !ManagementNodeState.isHotProxy(oldState))) {
+ if ((startMode==HighAvailabilityMode.HOT_STANDBY || startMode==HighAvailabilityMode.HOT_BACKUP) && !ManagementNodeState.isHotProxy(oldState)) {
// now transition to hot proxy
nodeStateTransitionComplete = false;
if (startMode==HighAvailabilityMode.HOT_STANDBY) {
@@ -685,7 +680,6 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager {
ManagementNodeSyncRecord ownNodeRecord = memento.getManagementNodes().get(ownNodeId);
ManagementNodeSyncRecord newMasterNodeRecord = null;
- boolean weWereMaster = getNodeState()==ManagementNodeState.MASTER;
boolean demotingSelfInFavourOfOtherMaster = false;
if (currMasterNodeRecord != null && currMasterNodeRecord.getStatus() == ManagementNodeState.MASTER && isHeartbeatOk(currMasterNodeRecord, ownNodeRecord)) {
@@ -769,8 +763,8 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager {
(weAreNewMaster ? "us " : "")
+ newMasterNodeId + " (" + timestampString(newMasterNodeRecord.getRemoteTimestamp()) + ")"
+ (newMasterNodeUri!=null ? " "+newMasterNodeUri : "") );
- if (weWereMaster || weAreNewMaster) LOG.info(message);
- else LOG.debug(message);
+ // always log, if you're looking at a standby node it's useful to see the new master's URL
+ LOG.info(message);
}
// New master is ourself: promote