Browse Source

AMBARI-1893. Parsing new alerts format fails. (srimanth)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1467082 13f79535-47bb-0310-9956-ffa450edef68
Srimanth 12 years ago
parent
commit
3a8b91cecf

+ 2 - 0
CHANGES.txt

@@ -690,6 +690,8 @@ Trunk (unreleased changes):
 
  BUG FIXES
 
+ AMBARI-1893. Parsing new alerts format fails. (srimanth)
+
  AMBARI-1891. Impossibility to scroll metric window after browser width 
  changing. (srimanth)
 

+ 10 - 2
ambari-web/app/mappers/alerts_mapper.js

@@ -42,8 +42,7 @@ App.alertsMapper = App.QuickDataMapper.create({
       return;
     }
     if (json && json.items && json.items.length>0 && json.items[0].HostRoles && json.items[0].HostRoles.nagios_alerts) {
-      var alertsString = json.items[0].HostRoles.nagios_alerts;
-      var alerts = jQuery.parseJSON(alertsString).alerts;
+      var alerts = json.items[0].HostRoles.nagios_alerts.alerts;
       if (App.Alert.find().content.length > 0) {
         this.update(alerts);
       } else {
@@ -61,6 +60,9 @@ App.alertsMapper = App.QuickDataMapper.create({
               case "2":
                 applyConfig['date'] = 'last_time_critical';
                 break;
+              case "3":
+                applyConfig['date'] = 'last_time_unknown';
+                break;
             }
           }
           result.push(this.parseIt(item, applyConfig));
@@ -91,6 +93,9 @@ App.alertsMapper = App.QuickDataMapper.create({
             case "2":
               applyConfig['date'] = 'last_time_critical';
               break;
+            case "3":
+              applyConfig['date'] = 'last_time_unknown';
+              break;
           }
         }
         newRecords.push(this.parseIt(item, applyConfig));
@@ -108,6 +113,9 @@ App.alertsMapper = App.QuickDataMapper.create({
             case "2":
               existAlert.set('date', DS.attr.transforms.date.from(item.last_time_critical));
               break;
+            case "3":
+              existAlert.set('date', DS.attr.transforms.date.from(item.last_time_unknown));
+              break;
             default:
               existAlert.set('date', DS.attr.transforms.date.from(item.last_hard_state_change));
               break;

+ 1 - 0
ambari-web/app/messages.js

@@ -191,6 +191,7 @@ Em.I18n.translations = {
   'services.alerts.OK.timePrefix': 'OK for ',
   'services.alerts.WARN.timePrefix': 'WARN for ',
   'services.alerts.CRIT.timePrefix': 'CRIT for ',
+  'services.alerts.UNKNOWN.timePrefix': 'UNKNOWN for ',
   'services.alerts.headingOfList': 'Alerts and Health Checks',
   'services.alerts.goToService': 'Go to Service',
   'services.alerts.goToNagios': 'Go to Nagios Web UI',

+ 10 - 0
ambari-web/app/models/alert.js

@@ -60,6 +60,13 @@ App.Alert = DS.Model.extend({
     return this.get('status') == "1";
   }.property('status'),
 
+  /**
+   * Used to show correct icon in UI
+   */
+  isCritical: function() {
+    return this.get('status') == '2';
+  }.property('status'),
+
   /**
    * Used to show only required alerts at the service level
    */
@@ -90,6 +97,9 @@ App.Alert = DS.Model.extend({
         case "2":
           prefix = this.t('services.alerts.CRIT.timePrefix');
           break;
+        case "3":
+          prefix = this.t('services.alerts.UNKNOWN.timePrefix');
+          break;
       }
       var prevSuffix = $.timeago.settings.strings.suffixAgo;
       $.timeago.settings.strings.suffixAgo = '';

+ 4 - 0
ambari-web/app/styles/application.less

@@ -222,6 +222,10 @@ h1 {
   color: #FF4B4B;
 }
 
+.icon-question-sign {
+  color: #999;
+}
+
 .tooltip {
   z-index: 1050;
 }

+ 5 - 1
ambari-web/app/templates/main/service/info/summary_alert.hbs

@@ -25,7 +25,11 @@
 	          {{#if isWarning}}
 	              <i class="icon-warning-sign icon-large"></i>
 	          {{else}}
-	              <i class="icon-remove icon-large"></i>
+              {{#if isCritical}}
+                  <i class="icon-remove icon-large"></i>
+              {{else}}
+                  <i class="icon-question-sign icon-large"></i>
+              {{/if}}
 	          {{/if}}
           {{/if}}
         </div>