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'),