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 2014/04/18 15:01:58 UTC

git commit: AMBARI-5507. Refactor of Flume service view related to metrics. (Denys Buzhor via alexantonenko)

Repository: ambari
Updated Branches:
  refs/heads/trunk f83d95df7 -> fd73398b1


AMBARI-5507. Refactor of Flume service view related to metrics. (Denys Buzhor via alexantonenko)


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

Branch: refs/heads/trunk
Commit: fd73398b19c2e419ad8e9572865a06a380fbe472
Parents: f83d95d
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri Apr 18 15:56:55 2014 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri Apr 18 15:56:55 2014 +0300

----------------------------------------------------------------------
 .../app/templates/main/service/info/summary.hbs | 18 +++---
 .../app/views/main/service/info/summary.js      | 62 +++-----------------
 .../app/views/main/service/services/flume.js    | 36 ++++++++++++
 3 files changed, 54 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/fd73398b/ambari-web/app/templates/main/service/info/summary.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/info/summary.hbs b/ambari-web/app/templates/main/service/info/summary.hbs
index e488656..a64993e 100644
--- a/ambari-web/app/templates/main/service/info/summary.hbs
+++ b/ambari-web/app/templates/main/service/info/summary.hbs
@@ -123,26 +123,26 @@
   </div>
 </div>
 
-{{#if view.collapsedMetrics}}
+{{#if view.collapsedSections}}
   <div class="row-fluid">
     <div class="span12 metrics-collapsed-graphs">
-      {{#each collapsedMetric in view.collapsedMetrics}}
-        <div {{bindAttr class=":accordion collapsedMetric.toggleIndex"}}>
+      {{#each collapsedSection in view.collapsedSections}}
+        <div {{bindAttr class=":accordion collapsedSection.toggleIndex"}}>
           <div class="accordion-group box">
             <div class="accordion-heading box-header">
-              <span class="pull-left accordion-toggle" data-toggle="collapse" {{bindAttr dataParent="collapsedMetric.toggleIndex" href="collapsedMetric.toggleIndex"}}>
+              <span class="pull-left accordion-toggle" data-toggle="collapse" {{bindAttr dataParent="collapsedSection.toggleIndex" href="collapsedSection.toggleIndex"}}>
                 <i class="pull-left icon-caret-toggle"></i>
-                <span>{{collapsedMetric.header}}</span>
+                <span>{{collapsedSection.header}}</span>
               </span>
-              <a class="btn pull-right" {{bindAttr href="collapsedMetric.url"}} target="_blank">
+              <a class="btn pull-right" {{bindAttr href="collapsedSection.url"}} target="_blank">
                 <i class="icon-link"></i>
               </a>
               <div class="clearfix"></div>
             </div>
-            <div class="accordion-body collapse in" {{bindAttr id="collapsedMetric.id"}}>
+            <div class="accordion-body collapse in" {{bindAttr id="collapsedSection.id"}}>
               <div class="accordion-inner">
-                {{#if collapsedMetric.metricView}}
-                  {{view collapsedMetric.metricView}}
+                {{#if collapsedSection.metricView}}
+                  {{view collapsedSection.metricView}}
                 {{/if}}
               </div>
             </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/fd73398b/ambari-web/app/views/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/info/summary.js b/ambari-web/app/views/main/service/info/summary.js
index 6592f8f..dd7ce7f 100644
--- a/ambari-web/app/views/main/service/info/summary.js
+++ b/ambari-web/app/views/main/service/info/summary.js
@@ -54,8 +54,14 @@ App.MainServiceInfoSummaryView = Em.View.extend({
     pig :false,
     sqoop: false
   },
-  /** @property collapsedMetrics {array} - metrics list for collapsed view **/
-  collapsedMetrics: null,
+  /** @property collapsedMetrics {object[]} - metrics list for collapsed section
+   *    structure of element from list:
+   *      @property {string} header - title for section
+   *      @property {string} id - id of section for toggling, like: metric1
+   *      @property {string} toggleIndex - passed to `data-parent` attribute, like: #metric1
+   *      @property {Em.View} metricView - metric view class
+   */
+  collapsedSections: null,
 
   servicesHaveClients: ["OOZIE", "ZOOKEEPER", "HIVE", "MAPREDUCE2", "TEZ", "SQOOP", "PIG","FALCON"],
 
@@ -520,56 +526,6 @@ App.MainServiceInfoSummaryView = Em.View.extend({
     });
 
     return names.length ? names.join(', ') : false;
-  }.property('clientComponents'),
-  /**
-   * Show metric by related info.
-   *
-   * @method setMetric
-   * @param {object} context - data related to metric
-   */
-  setMetric: function(context) {
-    switch (this.get('service.serviceName')) {
-      case 'FLUME':
-        this.setFlumeAgentMetric(context);
-        break;
-      default:
-        break;
-    }
-  },
-  /**
-   * Show Flume agent metric.
-   *
-   * @method setFlumeAgentMetric
-   * @param {object} agent - DS.model of agent
-   */
-  setFlumeAgentMetric: function(agent) {
-    var getMetricTitle = function(metricTypeKey, hostName) {
-      var metricType = Em.I18n.t('services.service.info.metrics.flume.' + metricTypeKey).format(Em.I18n.t('common.metrics'));
-      return  metricType + ' - ' + hostName;
-    };
-    var gangliaUrlTpl = App.router.get('clusterController.gangliaUrl') + '/?r=hour&cs=&ce=&m=load_one&s=by+name&c=HDPFlumeServer&h={0}&host_regex=&max_graphs=0&tab=m&vn=&sh=1&z=small&hc=4';
-    var agentHostMock = 'localhost'; // @todo change to agent hostname
-    var mockMetricData = [
-      {
-        header: 'sinkName',
-        metricView: App.ChartServiceMetricsFlume_SinkDrainSuccessCount.extend()
-      },
-      {
-        header: 'sourceName',
-        metricView: App.ChartServiceMetricsFlume_SourceAcceptedCount.extend()
-      },
-      {
-        header: 'channelName',
-        metricView: App.ChartServiceMetricsFlume_ChannelSize.extend()
-      }
-    ];
-    mockMetricData.forEach(function(mockData, index) {
-      mockData.header = getMetricTitle(mockData.header, agentHostMock);
-      mockData.url = gangliaUrlTpl.format(agentHostMock);
-      mockData.id = 'metric' + index;
-      mockData.toggleIndex = '#' + mockData.id;
-    });
-    this.set('collapsedMetrics', mockMetricData);
-  }
+  }.property('clientComponents')
 
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/fd73398b/ambari-web/app/views/main/service/services/flume.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/services/flume.js b/ambari-web/app/views/main/service/services/flume.js
index a42d074..4e24545 100644
--- a/ambari-web/app/views/main/service/services/flume.js
+++ b/ambari-web/app/views/main/service/services/flume.js
@@ -115,6 +115,7 @@ App.MainDashboardServiceFlumeView = App.TableView.extend({
     var agent = event.context;
     this.set('controller.selectedFlumeAgent', agent);
     this.toggleHighlight($(event.currentTarget));
+    this.setAgentMetrics(event.context);
     this.get('parentView').setMetric(agent);
   },
   /**
@@ -126,5 +127,40 @@ App.MainDashboardServiceFlumeView = App.TableView.extend({
   toggleHighlight: function(element) {
     element.parent().find('.highlight').removeClass('highlight');
     element.addClass('highlight');
+  },
+  /**
+   * Show Flume agent metric.
+   *
+   * @method setFlumeAgentMetric
+   * @param {object} agent - DS.model of agent
+   */
+  setAgentMetrics: function(agent) {
+    var getMetricTitle = function(metricTypeKey, hostName) {
+      var metricType = Em.I18n.t('services.service.info.metrics.flume.' + metricTypeKey).format(Em.I18n.t('common.metrics'));
+      return  metricType + ' - ' + hostName;
+    };
+    var gangliaUrlTpl = App.router.get('clusterController.gangliaUrl') + '/?r=hour&cs=&ce=&m=load_one&s=by+name&c=HDPFlumeServer&h={0}&host_regex=&max_graphs=0&tab=m&vn=&sh=1&z=small&hc=4';
+    var agentHostMock = 'localhost'; // @todo change to agent hostname
+    var mockMetricData = [
+      {
+        header: 'sinkName',
+        metricView: App.ChartServiceMetricsFlume_SinkDrainSuccessCount.extend()
+      },
+      {
+        header: 'sourceName',
+        metricView: App.ChartServiceMetricsFlume_SourceAcceptedCount.extend()
+      },
+      {
+        header: 'channelName',
+        metricView: App.ChartServiceMetricsFlume_ChannelSize.extend()
+      }
+    ];
+    mockMetricData.forEach(function(mockData, index) {
+      mockData.header = getMetricTitle(mockData.header, agentHostMock);
+      mockData.url = gangliaUrlTpl.format(agentHostMock);
+      mockData.id = 'metric' + index;
+      mockData.toggleIndex = '#' + mockData.id;
+    });
+    this.set('parentView.collapsedSections', mockMetricData);
   }
 });