You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dd...@apache.org on 2011/12/26 09:49:51 UTC

svn commit: r1224695 - in /incubator/ambari/trunk: ./ client/src/main/java/org/apache/ambari/common/rest/entities/ controller/src/main/java/org/apache/ambari/controller/ controller/src/test/java/org/apache/ambari/controller/

Author: ddas
Date: Mon Dec 26 08:49:50 2011
New Revision: 1224695

URL: http://svn.apache.org/viewvc?rev=1224695&view=rev
Log:
AMBARI-175. Removes the map from hostnames to heartbeat-responses.

Modified:
    incubator/ambari/trunk/CHANGES.txt
    incubator/ambari/trunk/client/src/main/java/org/apache/ambari/common/rest/entities/NodeState.java
    incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/HeartbeatHandler.java
    incubator/ambari/trunk/controller/src/test/java/org/apache/ambari/controller/TestHeartbeat.java

Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1224695&r1=1224694&r2=1224695&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Mon Dec 26 08:49:50 2011
@@ -2,6 +2,8 @@ Ambari Change log
 
 Release 0.1.0 - unreleased
 
+  AMBARI-175. Removes the map from hostnames to heartbeat-responses. (ddas)
+
   AMBARI-174. Controller marks nodes unhealthy upon command execution failures. Marks them
   healthy when the corresponding agent is restarted (ddas)
 

Modified: incubator/ambari/trunk/client/src/main/java/org/apache/ambari/common/rest/entities/NodeState.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/client/src/main/java/org/apache/ambari/common/rest/entities/NodeState.java?rev=1224695&r1=1224694&r2=1224695&view=diff
==============================================================================
--- incubator/ambari/trunk/client/src/main/java/org/apache/ambari/common/rest/entities/NodeState.java (original)
+++ incubator/ambari/trunk/client/src/main/java/org/apache/ambari/common/rest/entities/NodeState.java Mon Dec 26 08:49:50 2011
@@ -64,7 +64,7 @@ public class NodeState {
     protected Boolean allocatedToCluster = false;
     
     @XmlAttribute
-    protected Boolean health = true;
+    protected Boolean health = NodeState.HEALTHY;
         
     /*
      * null indicates no roles associated with this node.

Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/HeartbeatHandler.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/HeartbeatHandler.java?rev=1224695&r1=1224694&r2=1224695&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/HeartbeatHandler.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/HeartbeatHandler.java Mon Dec 26 08:49:50 2011
@@ -57,9 +57,6 @@ import com.google.inject.Singleton;
 @Singleton
 public class HeartbeatHandler {
   
-  private Map<String, ControllerResponse> agentToHeartbeatResponseMap = 
-      Collections.synchronizedMap(new HashMap<String, ControllerResponse>());
-  
   private static Log LOG = LogFactory.getLog(HeartbeatHandler.class);
   private final Clusters clusters;
   private final Nodes nodes;
@@ -85,20 +82,12 @@ public class HeartbeatHandler {
     nodes.checkAndUpdateNode(hostname, heartbeatTime);
     
     boolean firstContact = heartbeat.getFirstContact();
-    ControllerResponse prevResponse = 
-        agentToHeartbeatResponseMap.get(heartbeat.getHostname());
      
-    if (firstContact || prevResponse == null) {
-      //either the controller restarted, or this is a new agent
+    if (firstContact) {
+      //this is a new agent
       nodes.markNodeHealthy(hostname);
     }
     
-    if (prevResponse != null) {
-      if (prevResponse.getResponseId() != heartbeat.getResponseId()) {
-        return prevResponse; //duplicate heartbeat or the agent restarted
-      }
-    }
-    
     List<CommandResult> commandResult;
     if((commandResult = failedActions(heartbeat))!=null && 
         !commandResult.isEmpty()) {
@@ -179,8 +168,7 @@ public class HeartbeatHandler {
                 //check the expected state of the agent and whether the start
                 //was successful
                 if (wasStartRoleSuccessful(clusterIdAndRev, 
-                    service.getServiceName(), role.getRoleName(), prevResponse, 
-                    heartbeat)) {
+                    service.getServiceName(), role.getRoleName(), heartbeat)) {
                   //raise an event to the state machine for a successful 
                   //role-start
                   stateMachineInvoker.getAMBARIEventHandler()
@@ -195,8 +183,7 @@ public class HeartbeatHandler {
                 //raise an event to the state machine for a successful 
                 //role-stop instance
                 if (wasStopRoleSuccessful(clusterIdAndRev, 
-                    service.getServiceName(), role.getRoleName(), prevResponse, 
-                    heartbeat)) {
+                    service.getServiceName(), role.getRoleName(), heartbeat)) {
                   stateMachineInvoker.getAMBARIEventHandler()
                   .handle(new RoleEvent(RoleEventType.STOP_SUCCESS, role));
                 }
@@ -245,7 +232,6 @@ public class HeartbeatHandler {
       allActions.add(a);
     }
     r.setActions(allActions);
-    agentToHeartbeatResponseMap.put(heartbeat.getHostname(), r);
     return r;
   }
   
@@ -260,8 +246,7 @@ public class HeartbeatHandler {
   }
     
   private boolean wasStartRoleSuccessful(ClusterNameAndRev clusterIdAndRev, 
-      String component, String roleName, ControllerResponse response, 
-      HeartBeat heartbeat) {
+      String component, String roleName, HeartBeat heartbeat) {
     List<AgentRoleState> serverStates = heartbeat.getInstalledRoleStates();
     if (serverStates == null) {
       return false;
@@ -296,8 +281,7 @@ public class HeartbeatHandler {
   }
   
   private boolean wasStopRoleSuccessful(ClusterNameAndRev clusterIdAndRev, 
-      String component, String roleName, ControllerResponse response, 
-      HeartBeat heartbeat) {
+      String component, String roleName, HeartBeat heartbeat) {
     List<AgentRoleState> serverStates = heartbeat.getInstalledRoleStates();
     if (serverStates == null) {
       return true;

Modified: incubator/ambari/trunk/controller/src/test/java/org/apache/ambari/controller/TestHeartbeat.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/test/java/org/apache/ambari/controller/TestHeartbeat.java?rev=1224695&r1=1224694&r2=1224695&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/test/java/org/apache/ambari/controller/TestHeartbeat.java (original)
+++ incubator/ambari/trunk/controller/src/test/java/org/apache/ambari/controller/TestHeartbeat.java Mon Dec 26 08:49:50 2011
@@ -404,7 +404,7 @@ public class TestHeartbeat {
     mUnhealthy.methodCalled = false;
     mHealthy.methodCalled = false;
     //now the call to markNodeUnhealthy should not happen
-    //the call to markNodeHealthy should happen
+    //the call to markNodeHealthy should not happen too
     handler.processHeartBeat(heartbeat);
     assert(mUnhealthy.methodCalled == false && mHealthy.methodCalled == false);