Prechádzať zdrojové kódy

AMBARI-3235. HDFS Summary "Upgrade Status" and "Safe Mode Status" are always shown even when HDFS is down. (xiwang via yusaku)

Yusaku Sako 11 rokov pred
rodič
commit
e17c529897

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

@@ -118,22 +118,14 @@
       <tr>
         <td>{{t services.service.summary.pendingUpgradeStatus}}</td>
         <td>
-          {{#if view.service.upgradeStatus}}
-            {{t services.service.summary.pendingUpgradeStatus.notPending}}
-          {{else}}
-            {{t services.service.summary.pendingUpgradeStatus.pending}}
-          {{/if}}
+          {{view.upgradeStatus}}
         </td>
       </tr>
       <!-- Safe Mode Status -->
       <tr>
         <td>{{t services.service.summary.safeModeStatus}}</td>
         <td>
-          {{#if view.isSafeMode}}
-            {{t services.service.summary.safeModeStatus.inSafeMode}}
-          {{else}}
-            {{t services.service.summary.safeModeStatus.notInSafeMode}}
-          {{/if}}
+          {{view.safeModeStatus}}
         </td>
       </tr>
 

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

@@ -218,8 +218,25 @@ App.MainDashboardServiceHdfsView = App.MainDashboardServiceView.extend({
     return App.HostComponent.find().findProperty('componentName', 'JOURNALNODE');
   }.property(),
 
-  isSafeMode: function () {
+  safeModeStatus: function () {
     var safeMode = this.get('service.safeModeStatus');
-    return safeMode != null && safeMode.length > 0;
-  }.property('service.safeModeStatus')
+    if (safeMode == null) {
+      return Em.I18n.t("services.service.summary.notAvailable");
+    } else if (safeMode.length == 0) {
+      return Em.I18n.t("services.service.summary.safeModeStatus.notInSafeMode");
+    } else {
+      return Em.I18n.t("services.service.summary.safeModeStatus.inSafeMode");
+    }
+  }.property('service.safeModeStatus'),
+  upgradeStatus: function () {
+    var upgradeStatus = this.get('service.upgradeStatus');
+    var healthStatus = this.get('service.healthStatus');
+    if (upgradeStatus) {
+      return Em.I18n.t('services.service.summary.pendingUpgradeStatus.notPending');
+    } else if (healthStatus == 'green') {
+      return Em.I18n.t('services.service.summary.pendingUpgradeStatus.pending');
+    } else {
+      return Em.I18n.t("services.service.summary.notAvailable");
+    }
+  }.property('service.upgradeStatus', 'service.healthStatus')
 });