You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/10/12 11:23:48 UTC

ambari git commit: AMBARI-13384. Unable to export metrics data from dashboard during the first visit of this page

Repository: ambari
Updated Branches:
  refs/heads/trunk 1e49680b1 -> 03c399c0f


AMBARI-13384. Unable to export metrics data from dashboard during the first visit of this page


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/03c399c0
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/03c399c0
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/03c399c0

Branch: refs/heads/trunk
Commit: 03c399c0f2cb5945cfbc3c89f986ffa6b959a5b6
Parents: 1e49680
Author: Alex Antonenko <hi...@gmail.com>
Authored: Mon Oct 12 12:20:03 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Mon Oct 12 12:23:44 2015 +0300

----------------------------------------------------------------------
 ambari-web/app/assets/test/tests.js             |  1 +
 .../main/dashboard/widgets/cluster_metrics.hbs  |  2 +-
 .../dashboard/widgets/cluster_metrics_widget.js |  4 +-
 .../widgets/cluster_metrics_widget_test.js      | 88 ++++++++++++++++++++
 4 files changed, 92 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/03c399c0/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index dc86bcf..5b5f588 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -238,6 +238,7 @@ var files = [
   'test/views/main/dashboard/widgets/links_widget_test',
   'test/views/main/dashboard/widgets/pie_chart_widget_test',
   'test/views/main/dashboard/widgets/namenode_cpu_test',
+  'test/views/main/dashboard/widgets/cluster_metrics_widget_test',
   'test/views/main/host/details_test',
   'test/views/main/host/summary_test',
   'test/views/main/host/menu_test',

http://git-wip-us.apache.org/repos/asf/ambari/blob/03c399c0/ambari-web/app/templates/main/dashboard/widgets/cluster_metrics.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/dashboard/widgets/cluster_metrics.hbs b/ambari-web/app/templates/main/dashboard/widgets/cluster_metrics.hbs
index 5b5bea1..ac5ab3a 100644
--- a/ambari-web/app/templates/main/dashboard/widgets/cluster_metrics.hbs
+++ b/ambari-web/app/templates/main/dashboard/widgets/cluster_metrics.hbs
@@ -24,7 +24,7 @@
       </a>
       <div class="caption span10">{{view.title}}</div>
       {{#if view.isDataLoaded}}
-        {{#if view.childViews.firstObject.hasData}}
+        {{#if view.childViews.lastObject.hasData}}
           <a class="corner-icon span1" href="#" {{action toggleFormatsList target="view"}}>
             <i class="icon-save"></i>
           </a>

http://git-wip-us.apache.org/repos/asf/ambari/blob/03c399c0/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js b/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
index 58dfecb..a3d7f84 100644
--- a/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
+++ b/ambari-web/app/views/main/dashboard/widgets/cluster_metrics_widget.js
@@ -34,10 +34,10 @@ App.ClusterMetricsDashboardWidgetView = App.DashboardWidgetView.extend(App.Expor
 
   exportGraphData: function (event) {
     this._super();
-    var ajaxIndex = this.get('childViews.firstObject.ajaxIndex');
+    var ajaxIndex = this.get('childViews.lastObject.ajaxIndex');
     App.ajax.send({
       name: ajaxIndex,
-      data: $.extend(this.get('childViews.firstObject').getDataForAjaxRequest(), {
+      data: $.extend(this.get('childViews.lastObject').getDataForAjaxRequest(), {
         isCSV: !!event.context
       }),
       sender: this,

http://git-wip-us.apache.org/repos/asf/ambari/blob/03c399c0/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js b/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
new file mode 100644
index 0000000..1471aac
--- /dev/null
+++ b/ambari-web/test/views/main/dashboard/widgets/cluster_metrics_widget_test.js
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var App = require('app');
+
+require('views/main/dashboard/widgets/cluster_metrics_widget');
+
+describe('App.ClusterMetricsDashboardWidgetView', function () {
+
+  var view;
+
+  beforeEach(function () {
+    view = App.ClusterMetricsDashboardWidgetView.create();
+  });
+
+  describe('#exportGraphData', function () {
+
+    beforeEach(function () {
+      sinon.stub(App.ajax, 'send', Em.K);
+      view.get('childViews').pushObjects([
+        {
+          ajaxIndex: 'ai0',
+          getDataForAjaxRequest: function () {
+            return {
+              p0: 'v0'
+            }
+          }
+        },
+        {
+          ajaxIndex: 'ai1',
+          getDataForAjaxRequest: function () {
+            return {
+              p1: 'v1'
+            }
+          }
+        }
+      ]);
+    });
+
+    afterEach(function () {
+      App.ajax.send.restore();
+    });
+
+    var cases = [
+      {
+        event: {},
+        isCSV: false,
+        title: 'JSON export'
+      },
+      {
+        event: {
+          context: true
+        },
+        isCSV: true,
+        title: 'CSV export'
+      }
+    ];
+
+    cases.forEach(function (item) {
+      it(item.title, function () {
+        view.exportGraphData(item.event);
+        expect(App.ajax.send.calledOnce).to.be.true;
+        expect(App.ajax.send.firstCall.args[0].name).to.equal('ai1');
+        expect(App.ajax.send.firstCall.args[0].data).to.eql({
+          p1: 'v1',
+          isCSV: item.isCSV
+        });
+      });
+    });
+
+  });
+
+});