Kaynağa Gözat

AMBARI-2690. Datanode Live widget displays 0 dead when no datanode is live on a cluster. (Xi Wang via yusaku)

Yusaku Sako 12 yıl önce
ebeveyn
işleme
157ad266ae

+ 2 - 2
ambari-web/app/templates/main/dashboard/service/hdfs.hbs

@@ -68,8 +68,8 @@
       <tr>
         <td>{{t dashboard.services.hdfs.datanodecounts}}</td>
         <td>
-          {{view.service.liveDataNodes.length}} {{t dashboard.services.hdfs.nodes.live}} /
-          {{view.service.deadDataNodes.length}} {{t dashboard.services.hdfs.nodes.dead}} /
+          {{view.dataNodesLive.length}} {{t dashboard.services.hdfs.nodes.live}} /
+          {{view.dataNodesDead.length}} {{t dashboard.services.hdfs.nodes.dead}} /
           {{view.service.decommissionDataNodes.length}} {{t dashboard.services.hdfs.nodes.decom}}
         </td>
       </tr>

+ 3 - 0
ambari-web/app/views/main/dashboard/service/hdfs.js

@@ -39,6 +39,9 @@ App.MainDashboardServiceHdfsView = App.MainDashboardServiceView.extend({
   dataNodesLive: function(){
     return App.HostComponent.find().filterProperty('componentName', 'DATANODE').filterProperty("workStatus","STARTED");
   }.property('service'),
+  dataNodesDead: function(){
+    return App.HostComponent.find().filterProperty('componentName', 'DATANODE').filterProperty("workStatus","INSTALLED");
+  }.property('service'),
 
   dataNodeHostText: function () {
     if(this.get("service.dataNodes") > 1){

+ 9 - 7
ambari-web/app/views/main/dashboard/widgets/datanode_live.js

@@ -31,11 +31,13 @@ App.DataNodeUpView = App.DashboardWidgetView.extend({
 
   hiddenInfo: function () {
     var result = [];
-    result.pushObject(this.get('model.liveDataNodes.length') + ' ' + this.t('dashboard.services.hdfs.nodes.live'));
-    result.pushObject(this.get('model.deadDataNodes.length') + ' ' + this.t('dashboard.services.hdfs.nodes.dead'));
+    result.pushObject( App.HostComponent.find().filterProperty('componentName', 'DATANODE').filterProperty("workStatus","STARTED").length
+      + ' ' + this.t('dashboard.services.hdfs.nodes.live'));
+    result.pushObject( App.HostComponent.find().filterProperty('componentName', 'DATANODE').filterProperty("workStatus","INSTALLED").length
+      + ' ' + this.t('dashboard.services.hdfs.nodes.dead'));
     result.pushObject(this.get('model.decommissionDataNodes.length')+ ' ' + this.t('dashboard.services.hdfs.nodes.decom'));
     return result;
-  }.property('model.liveDataNodes.length','model.deadDataNodes.length','model.decommissionDataNodes.length'),
+  }.property('model', 'model.decommissionDataNodes.length'),
   hiddenInfoClass: "hidden-info-three-line",
 
   classNameBindings: ['isRed', 'isOrange', 'isGreen'],
@@ -60,12 +62,12 @@ App.DataNodeUpView = App.DashboardWidgetView.extend({
   maxValue: 100,
 
   data: function () {
-    return ((this.get('model.liveDataNodes.length')/ this.get('model.dataNodes.length')).toFixed(2)) * 100;
-  }.property('model.dataNodes.length', 'model.liveDataNodes.length'),
+    return ((App.HostComponent.find().filterProperty('componentName', 'DATANODE').filterProperty("workStatus","STARTED").length / this.get('model.dataNodes.length')).toFixed(2)) * 100;
+  }.property('model.dataNodes.length', 'model'),
 
   content: function () {
-    return this.get('model.liveDataNodes.length') + "/" + this.get('model.dataNodes.length');
-  }.property('model.dataNodes.length', 'model.liveDataNodes.length'),
+    return App.HostComponent.find().filterProperty('componentName', 'DATANODE').filterProperty("workStatus","STARTED").length + "/" + this.get('model.dataNodes.length');
+  }.property('model.dataNodes.length', 'model'),
 
   editWidget: function (event) {
     var parent = this;

+ 3 - 3
ambari-web/app/views/main/dashboard/widgets/tasktracker_live.js

@@ -31,7 +31,7 @@ App.TaskTrackerUpView = App.DashboardWidgetView.extend({
 
   hiddenInfo: function () {
     var svc = this.get('model');
-    var liveCount = svc.get('aliveTrackers').get('length');
+    var liveCount = App.HostComponent.find().filterProperty('componentName', 'TASKTRACKER').filterProperty("workStatus","STARTED").length;
     var totalCount = svc.get('taskTrackers').get('length');
     var result = [];
     result.pushObject(liveCount + " live");
@@ -61,11 +61,11 @@ App.TaskTrackerUpView = App.DashboardWidgetView.extend({
   maxValue: 100,
 
   data: function () {
-    return ((this.get('model.aliveTrackers.length')/ this.get('model.taskTrackers.length')).toFixed(2)) * 100;
+    return ( App.HostComponent.find().filterProperty('componentName', 'TASKTRACKER').filterProperty("workStatus","STARTED").length / this.get('model.taskTrackers.length')).toFixed(2) * 100;
   }.property('model.taskTrackers.length', 'model.aliveTrackers.length'),
 
   content: function () {
-    return this.get('model.aliveTrackers.length') + "/" + this.get('model.taskTrackers.length');
+    return App.HostComponent.find().filterProperty('componentName', 'TASKTRACKER').filterProperty("workStatus","STARTED").length + "/" + this.get('model.taskTrackers.length');
   }.property('model.taskTrackers.length', 'model.aliveTrackers.length'),
 
   editWidget: function (event) {