You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2014/02/03 20:38:26 UTC

git commit: AMBARI-4480. On addition of NM/TT to a host it shows up as orange rather than red. (xiwang via yusaku)

Updated Branches:
  refs/heads/trunk cf5c6ad64 -> b31639e72


AMBARI-4480. On addition of NM/TT to a host it shows up as orange rather than red. (xiwang via yusaku)


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

Branch: refs/heads/trunk
Commit: b31639e7273d882112b15ee4d1f28701d1313302
Parents: cf5c6ad
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Mon Feb 3 11:38:02 2014 -0800
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Mon Feb 3 11:38:20 2014 -0800

----------------------------------------------------------------------
 ambari-web/app/views/main/host/summary.js | 167 ++++++++++++++-----------
 1 file changed, 93 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/b31639e7/ambari-web/app/views/main/host/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/summary.js b/ambari-web/app/views/main/host/summary.js
index 8d5f412..44d231b 100644
--- a/ambari-web/app/views/main/host/summary.js
+++ b/ambari-web/app/views/main/host/summary.js
@@ -280,10 +280,18 @@ App.MainHostSummaryView = Em.View.extend({
           }
         }
         if(this.get("isNodeManager") && this.get('isNodeManagerRecommissionAvailable')){
-          componentTextStatus = Em.I18n.t('hosts.host.decommissioned');
+          if(this.get('isNodeManagerDecommissioning')){
+            componentTextStatus = Em.I18n.t('hosts.host.decommissioning');
+          } else {
+            componentTextStatus = Em.I18n.t('hosts.host.decommissioned');
+          }
         }
         if(this.get("isTaskTracker") && this.get('isTaskTrackerRecommissionAvailable')){
-          componentTextStatus = Em.I18n.t('hosts.host.decommissioned');
+          if(this.get('isTaskTrackerDecommissioning')){
+            componentTextStatus = Em.I18n.t('hosts.host.decommissioning');
+          } else {
+            componentTextStatus = Em.I18n.t('hosts.host.decommissioned');
+          }
         }
         if(this.get("isRegionServer") && this.get('isRegionServerRecommissionAvailable')){
           if(this.get('isRegionServerDecommissioning')){
@@ -294,8 +302,9 @@ App.MainHostSummaryView = Em.View.extend({
         }
       }
       return componentTextStatus;
-    }.property('content.passiveState','workStatus','isDataNodeRecommissionAvailable', 'isDataNodeDecommissioning', 'isNodeManagerRecommissionAvailable',
-      'isTaskTrackerRecommissionAvailable', 'isRegionServerRecommissionAvailable', 'isRegionServerDecommissioning'),
+    }.property('content.passiveState','workStatus','isDataNodeRecommissionAvailable', 'isDataNodeDecommissioning', 'isNodeManagerRecommissionAvailable', 'isNodeManagerDecommissioning',
+      'isTaskTrackerRecommissionAvailable', 'isTaskTrackerDecommissioning', 'isRegionServerRecommissionAvailable', 'isRegionServerDecommissioning'),
+
 
     passiveImpliedTextStatus: function() {
       if(this.get('parentView.content.passiveState') === 'PASSIVE') {
@@ -376,7 +385,7 @@ App.MainHostSummaryView = Em.View.extend({
       var workStatus = this.get('workStatus');
       var self = this;
       var pulsate = [ App.HostComponentStatus.starting, App.HostComponentStatus.stopping, App.HostComponentStatus.installing].contains(workStatus);
-      if (!pulsate && (this.get('isDataNode') || this.get('isRegionServer'))) {
+      if (!pulsate && (this.get('isDataNode') || this.get('isRegionServer') || this.get('isNodeManager') || this.get('isTaskTracker'))) {
         var component = this.get('content');
         if (component && workStatus != "INSTALLED") {
           pulsate = this.get('isDecommissioning');
@@ -397,7 +406,8 @@ App.MainHostSummaryView = Em.View.extend({
       this.$('.components-health').stop(true, true);
       this.$('.components-health').css({opacity: 1.0});
       this.doBlinking();
-    }.observes('workStatus','isDataNodeRecommissionAvailable', 'isDecommissioning', 'isRegionServerRecommissionAvailable'),
+    }.observes('workStatus','isDataNodeRecommissionAvailable', 'isDecommissioning', 'isRegionServerRecommissionAvailable',
+      'isNodeManagerRecommissionAvailable', 'isTaskTrackerRecommissionAvailable'),
 
     isStart: function () {
       return (this.get('workStatus') == App.HostComponentStatus.started || this.get('workStatus') == App.HostComponentStatus.starting);
@@ -450,8 +460,9 @@ App.MainHostSummaryView = Em.View.extend({
     }.property('content.passiveState'),
 
     isDecommissioning: function () {
-      return (this.get('isDataNode') && this.get("isDataNodeDecommissioning")) || (this.get('isRegionServer') && this.get("isRegionServerDecommissioning"));
-    }.property("workStatus", "isDataNodeDecommissioning", "isRegionServerDecommissioning"),
+      return ( (this.get('isDataNode') && this.get("isDataNodeDecommissioning")) || (this.get('isRegionServer') && this.get("isRegionServerDecommissioning"))
+        || (this.get('isNodeManager') && this.get("isNodeManagerDecommissioning")) || (this.get('isTaskTracker') && this.get('isTaskTrackerDecommissioning')));
+    }.property("workStatus", "isDataNodeDecommissioning", "isRegionServerDecommissioning", "isNodeManagerDecommissioning", "isTaskTrackerDecommissioning"),
 
     isDataNodeDecommissioning: null,
     isDataNodeDecommissionAvailable: null,
@@ -493,7 +504,7 @@ App.MainHostSummaryView = Em.View.extend({
                   break;
               }
             } else {
-              // if namenode is down, get desired_admin_state to decide if the used had issued a decommission
+              // if namenode is down, get desired_admin_state to decide if the user had issued a decommission
               var deferred = $.Deferred();
               self.getDesiredAdminState(clusterName, hostName, slaveType).done( function () {
                 var desired_admin_state = self.get('desiredAdminState');
@@ -534,7 +545,7 @@ App.MainHostSummaryView = Em.View.extend({
               self.set('isDataNodeDecommissioning', false);
               self.set('isDataNodeDecommissionAvailable', self.get('isStart'));
             } else {
-              // if namenode is down, get desired_admin_state to decide if the used had issued a decommission
+              // if namenode is down, get desired_admin_state to decide if the user had issued a decommission
               var deferred = $.Deferred();
               self.getDesiredAdminState(clusterName, hostName, slaveType).done( function () {
                 var desired_admin_state = self.get('desiredAdminState');
@@ -623,6 +634,7 @@ App.MainHostSummaryView = Em.View.extend({
 
     isNodeManagerDecommissionAvailable: null,
     isNodeManagerRecommissionAvailable: null,
+    isNodeManagerDecommissioning: null,
     /**
      * load Recommission/Decommission status for nodeManager from nodeManagers list
      */
@@ -633,38 +645,41 @@ App.MainHostSummaryView = Em.View.extend({
       var slaveType = 'NODEMANAGER';
       var dfd = $.Deferred();
       var self = this;
-      this.getNMDecommissionStatus(clusterName, hostName, componentName).done(function () {
-        var curObj = self.get('decommissionedStatusObject');
-        self.set('decommissionedStatusObject', null);
-        if (curObj && curObj.rm_metrics) {
-          var nodeManagersArray = App.parseJSON(curObj.rm_metrics.cluster.nodeManagers);
-            if (nodeManagersArray.findProperty('HostName', hostName)){
-              self.set('isNodeManagerRecommissionAvailable', false);
-              self.set('isNodeManagerDecommissionAvailable', self.get('isStart'));
-            } else {
-              self.set('isNodeManagerRecommissionAvailable', true);
-              self.set('isNodeManagerDecommissionAvailable', false);
-            }
-        } else if (!curObj.rm_metrics) {
-          // if ResourceManager is down, get desired_admin_state of NM to decide if the used had issued a decommission
-          var deferred = $.Deferred();
-          self.getDesiredAdminState(clusterName, hostName, slaveType).done( function () {
-            var desired_admin_state = self.get('desiredAdminState');
-            self.set('desiredAdminState', null);
-            switch(desired_admin_state) {
-              case "INSERVICE":
-                self.set('isNodeManagerRecommissionAvailable', false);
-                self.set('isNodeManagerDecommissionAvailable', self.get('isStart'));
-                break;
-              case "DECOMMISSIONED":
-                self.set('isNodeManagerRecommissionAvailable', true);
-                self.set('isNodeManagerDecommissionAvailable', false);
-                break;
-            }
-            deferred.resolve(desired_admin_state);
-          });
+
+      this.getDesiredAdminState(clusterName, hostName, slaveType).done( function () {
+        var desired_admin_state = self.get('desiredAdminState');
+        self.set('desiredAdminState', null);
+        switch(desired_admin_state) {
+          case "INSERVICE":
+            // can be decommissioned if already started
+            self.set('isNodeManagerRecommissionAvailable', false);
+            self.set('isNodeManagerDecommissioning', false);
+            self.set('isNodeManagerDecommissionAvailable', self.get('isStart'));
+            break;
+          case "DECOMMISSIONED":
+            var deferred = $.Deferred();
+            self.getNMDecommissionStatus(clusterName, hostName, componentName).done( function() {
+              var curObj = self.get('decommissionedStatusObject');
+              self.set('decommissionedStatusObject', null);
+              if (curObj && curObj.rm_metrics) {
+                var nodeManagersArray = App.parseJSON(curObj.rm_metrics.cluster.nodeManagers);
+                if (nodeManagersArray.findProperty('HostName', hostName)){
+                  // decommisioning ..
+                  self.set('isNodeManagerRecommissionAvailable', true);
+                  self.set('isNodeManagerDecommissioning', true);
+                  self.set('isNodeManagerDecommissionAvailable', false);
+                } else {
+                  // decommissioned ..
+                  self.set('isNodeManagerRecommissionAvailable', true);
+                  self.set('isNodeManagerDecommissioning', false);
+                  self.set('isNodeManagerDecommissionAvailable', false);
+                }
+              }
+              deferred.resolve(curObj);
+            });
+            break;
         }
-        dfd.resolve(curObj);
+        dfd.resolve(desired_admin_state);
       });
       return dfd.promise();
     }.observes('App.router.mainHostDetailsController.content'),
@@ -688,6 +703,7 @@ App.MainHostSummaryView = Em.View.extend({
 
     isTaskTrackerDecommissionAvailable: null,
     isTaskTrackerRecommissionAvailable: null,
+    isTaskTrackerDecommissioning: null,
     /**
      * load Recommission/Decommission status for TaskTracker from JobTracker/AliveNodes list
      */
@@ -698,40 +714,43 @@ App.MainHostSummaryView = Em.View.extend({
       var slaveType = 'TASKTRACKER';
       var dfd = $.Deferred();
       var self = this;
-      this.getTTDecommissionStatus(clusterName, hostName, componentName).done(function () {
-        var curObj = self.get('decommissionedStatusObject');
-        self.set('decommissionedStatusObject', null);
-        if (curObj) {
-          var aliveNodesArray = App.parseJSON(curObj.AliveNodes);
-          if (aliveNodesArray != null) {
-            if (aliveNodesArray.findProperty('hostname', hostName)){
-              self.set('isTaskTrackerRecommissionAvailable', false);
-              self.set('isTaskTrackerDecommissionAvailable', self.get('isStart'));
-            } else {
-              self.set('isTaskTrackerRecommissionAvailable', true);
-              self.set('isTaskTrackerDecommissionAvailable', false);
-            }
-          }
-        } else {
-          // if JobTracker is down, get desired_admin_state of TT to decide if the used had issued a decommission
-          var deferred = $.Deferred();
-          self.getDesiredAdminState(clusterName, hostName, slaveType).done( function () {
-            var desired_admin_state = self.get('desiredAdminState');
-            self.set('desiredAdminState', null);
-            switch(desired_admin_state) {
-              case "INSERVICE":
-                self.set('isTaskTrackerRecommissionAvailable', false);
-                self.set('isTaskTrackerDecommissionAvailable', self.get('isStart'));
-                break;
-              case "DECOMMISSIONED":
-                self.set('isTaskTrackerRecommissionAvailable', true);
-                self.set('isTaskTrackerDecommissionAvailable', false);
-                break;
-            }
-            deferred.resolve(desired_admin_state);
-          });
+      this.getDesiredAdminState(clusterName, hostName, slaveType).done( function () {
+        var desired_admin_state = self.get('desiredAdminState');
+        self.set('desiredAdminState', null);
+        switch(desired_admin_state) {
+          case "INSERVICE":
+            // can be decommissioned if already started
+            self.set('isTaskTrackerRecommissionAvailable', false);
+            self.set('isTaskTrackerDecommissioning', false);
+            self.set('isTaskTrackerDecommissionAvailable', self.get('isStart'));
+            break;
+          case "DECOMMISSIONED":
+            var deferred = $.Deferred();
+            self.getTTDecommissionStatus(clusterName, hostName, componentName).done( function() {
+              var curObj = self.get('decommissionedStatusObject');
+              self.set('decommissionedStatusObject', null);
+              if (curObj) {
+                var aliveNodesArray = App.parseJSON(curObj.AliveNodes);
+                if (aliveNodesArray != null) {
+                  if (aliveNodesArray.findProperty('hostname', hostName)){
+                    //decommissioning ..
+                    self.set('isTaskTrackerRecommissionAvailable', true);
+                    self.set('isTaskTrackerDecommissioning', true);
+                    self.set('isTaskTrackerDecommissionAvailable', false);
+                  } else {
+                    //decommissioned
+                    self.set('isTaskTrackerRecommissionAvailable', true);
+                    self.set('isTaskTrackerDecommissioning', false);
+                    self.set('isTaskTrackerDecommissionAvailable', false);
+                  }
+                }
+
+              }
+              deferred.resolve(curObj);
+            });
+            break;
         }
-        dfd.resolve(curObj);
+        dfd.resolve(desired_admin_state);
       });
       return dfd.promise();
     }.observes('App.router.mainHostDetailsController.content'),