Browse Source

AMBARI-4759 Host alerts indicator doesn't appear on ServicesPage without clicking 'Hosts' tab. (atkach)

atkach 11 years ago
parent
commit
34b1ccbf29

+ 1 - 1
ambari-web/app/controllers/global/cluster_controller.js

@@ -233,7 +233,7 @@ App.ClusterController = Em.Controller.extend({
       return false;
       return false;
     }
     }
     var testUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hc_host_status.json' : '/data/dashboard/services.json';
     var testUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hc_host_status.json' : '/data/dashboard/services.json';
-    var statusUrl = '/hosts?fields=Hosts/host_status,Hosts/passive_state,host_components/HostRoles/state,host_components/HostRoles/passive_state&minimal_response=true';
+    var statusUrl = '/hosts?fields=Hosts/host_status,Hosts/passive_state,host_components/HostRoles/state,host_components/HostRoles/passive_state,alerts/summary&minimal_response=true';
     if (isInitialLoad) {
     if (isInitialLoad) {
       testUrl = '/data/hosts/HDP2/hosts_init.json';
       testUrl = '/data/hosts/HDP2/hosts_init.json';
       statusUrl = '/hosts?fields=Hosts/host_name,Hosts/passive_state,Hosts/public_host_name,Hosts/cpu_count,Hosts/ph_cpu_count,Hosts/total_mem,' +
       statusUrl = '/hosts?fields=Hosts/host_name,Hosts/passive_state,Hosts/public_host_name,Hosts/cpu_count,Hosts/ph_cpu_count,Hosts/total_mem,' +

+ 2 - 2
ambari-web/app/controllers/global/update_controller.js

@@ -81,8 +81,8 @@ App.UpdateController = Em.Controller.extend({
   updateHost:function(callback) {
   updateHost:function(callback) {
     var testUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hosts.json' : '/data/hosts/hosts.json';
     var testUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hosts.json' : '/data/hosts/hosts.json';
     var hostsUrl = this.getUrl(testUrl, '/hosts?fields=Hosts/host_name,Hosts/host_status,Hosts/last_heartbeat_time,Hosts/disk_info,Hosts/passive_state,' +
     var hostsUrl = this.getUrl(testUrl, '/hosts?fields=Hosts/host_name,Hosts/host_status,Hosts/last_heartbeat_time,Hosts/disk_info,Hosts/passive_state,' +
-      'metrics/disk,metrics/load/load_one,metrics/cpu/cpu_system,metrics/cpu/cpu_user,metrics/memory/mem_total,metrics/memory/mem_free,'+
-      'alerts/summary&minimal_response=true');
+      'metrics/disk,metrics/load/load_one,metrics/cpu/cpu_system,metrics/cpu/cpu_user,metrics/memory/mem_total,metrics/memory/mem_free'+
+      '&minimal_response=true');
     App.HttpClient.get(hostsUrl, App.hostsMapper, {
     App.HttpClient.get(hostsUrl, App.hostsMapper, {
       complete: callback
       complete: callback
     });
     });

+ 2 - 5
ambari-web/app/mappers/hosts_mapper.js

@@ -77,16 +77,13 @@ App.hostsMapper = App.QuickDataMapper.create({
         item.host_components.forEach(function (host_component) {
         item.host_components.forEach(function (host_component) {
           host_component.id = host_component.HostRoles.component_name + "_" + hostName;
           host_component.id = host_component.HostRoles.component_name + "_" + hostName;
         }, this);
         }, this);
-        //check whether Nagios installed and started
-        if (item.alerts) {
-          item.critical_alerts_count = item.alerts.summary.CRITICAL + item.alerts.summary.WARNING;
-        }
 
 
         hostIds[hostName] = true;
         hostIds[hostName] = true;
         currentHostStatuses[hostName] = item.Hosts.host_status;
         currentHostStatuses[hostName] = item.Hosts.host_status;
 
 
-        var parsedItem = this.parseIt(item, this.config);
         var hostCache = cacheData[hostName];
         var hostCache = cacheData[hostName];
+        item.critical_alerts_count = hostCache.critical_alerts_count;
+        var parsedItem = this.parseIt(item, this.config);
 
 
         hostsWithFullInfo.push(parsedItem);
         hostsWithFullInfo.push(parsedItem);
         if (hostCache) {
         if (hostCache) {

+ 12 - 0
ambari-web/app/mappers/status_mapper.js

@@ -89,6 +89,14 @@ App.statusMapper = App.QuickDataMapper.create({
          */
          */
         if (hostsCache[hostName]) {
         if (hostsCache[hostName]) {
           hostsCache[hostName].host_components = hostComponentsOnHost;
           hostsCache[hostName].host_components = hostComponentsOnHost;
+        } else {
+          hostsCache[hostName] = {};
+        }
+        //check whether Nagios installed and started
+        if (host.alerts) {
+          hostsCache[hostName].critical_alerts_count = host.alerts.summary.CRITICAL + host.alerts.summary.WARNING;
+        } else {
+          hostsCache[hostName].critical_alerts_count = 0;
         }
         }
       }, this);
       }, this);
 
 
@@ -108,9 +116,13 @@ App.statusMapper = App.QuickDataMapper.create({
       var hostRecords = App.Host.find();
       var hostRecords = App.Host.find();
       hostRecords.forEach(function (host) {
       hostRecords.forEach(function (host) {
         var status = hostStatuses[host.get('id')];
         var status = hostStatuses[host.get('id')];
+        var hostCache = hostsCache[host.get('id')];
         if (status) {
         if (status) {
           host.set('healthStatus', status);
           host.set('healthStatus', status);
         }
         }
+        if (hostCache) {
+          host.set('criticalAlertsCount', hostCache.critical_alerts_count);
+        }
       });
       });
 
 
       if (addedHostComponents.length) {
       if (addedHostComponents.length) {