Forráskód Böngészése

AMBARI-13147 Heatmaps page: page hangs for a while on HDFS metrics. (atkach)

Andrii Tkach 10 éve
szülő
commit
1d292fbbac

+ 2 - 0
ambari-web/app/mixins/common/widgets/widget_mixin.js

@@ -410,6 +410,8 @@ App.WidgetMixin = Ember.Mixin.create({
       expressions = [],
       match;
 
+    if (Em.isNone(input)) return expressions;
+
     while (match = pattern.exec(input.value)) {
       expressions.push(match[1]);
     }

+ 7 - 1
ambari-web/app/views/common/widget/heatmap_widget_view.js

@@ -120,6 +120,12 @@ App.HeatmapWidgetView = Em.View.extend(App.WidgetMixin, {
   computeExpression: function (expressions, metrics) {
     var hostToValueMap = {};
     var hostNames = metrics.mapProperty('hostName');
+    var metricsMap = {};
+
+    metrics.forEach(function (_metric) {
+      metricsMap[_metric.name + "_" + _metric.hostName] = _metric;
+    }, this);
+
     hostNames.forEach(function (_hostName) {
       expressions.forEach(function (_expression) {
         var validExpression = true;
@@ -128,7 +134,7 @@ App.HeatmapWidgetView = Em.View.extend(App.WidgetMixin, {
         var beforeCompute = _expression.replace(this.get('VALUE_NAME_REGEX'), function (match) {
           var _metric;
           if (window.isNaN(match)) {
-            _metric = metrics.filterProperty('name', match).findProperty('hostName', _hostName);
+            _metric = metricsMap[match + "_" + _hostName];
             if (_metric) {
               return _metric.data;
             } else {

+ 4 - 0
ambari-web/test/mixins/common/widget_mixin_test.js

@@ -77,6 +77,10 @@ describe('App.WidgetMixin', function () {
         expect(mixinObject.extractExpressions(input)).to.eql(test.result);
       });
     });
+    it('input is null', function () {
+      var input = null;
+      expect(mixinObject.extractExpressions(input)).to.be.empty;
+    });
   });
 
   describe("#getRequestData()", function () {