瀏覽代碼

AMBARI-6796. Flume: assign specific id's and/or classes to the markup to ease test automation (alexantonenko)

Alex Antonenko 11 年之前
父節點
當前提交
48f0335809

+ 8 - 8
ambari-web/app/templates/main/service/services/flume.hbs

@@ -20,7 +20,7 @@
     <div id="flume-summary">
       <a href="#" {{action filterHosts view.flumeHandlerComponent}}>{{view.summaryHeader}}</a>
       <a href="#" class="pull-right" {{action gotoConfigs target="controller"}}>{{t dashboard.services.flume.summary.configure}}</a>
-      <div id="flume-agent-table" class="scrollable-container">
+      <div id="flume-agent-table-wrap" class="scrollable-container">
         <table class="table table-hover table-bordered table-striped" id="flume-agents-table">
           <thead>
           {{#view view.sortView contentBinding="view.filteredContent" class="label-row"}}
@@ -33,7 +33,7 @@
           </thead>
           {{#if view.pageContent}}
             {{#each host in view.pageContent}}
-              <tbody>
+              <tbody class="flume-agent-table-tbody">
                 {{#view view.agentView contentBinding="host"}}
                   <td {{bindAttr rowspan="host.rowspan"}} id="flume-host-agent-row" class="agent-host-name">
                       <a href="javascript:void(null)" {{action showDetails host.agents}}>
@@ -75,7 +75,7 @@
                   </td>
                 {{/view}}
                 {{#each agent in host.otherAgents}}
-                  <tr>
+                  {{#view view.agentView contentBinding="host"}}
                     <td class="agent-status">
                         <div class="wrapp-flume-status">
                             <span {{bindAttr class="agent.healthClass"}}></span> {{agent.name}}
@@ -100,22 +100,22 @@
                             </div>
                         </div>
                     </td>
-                    <td>
+                    <td class="flume-agent-sources-count">
                       {{agent.sourcesCount}}
                     </td>
-                    <td>
+                    <td class="flume-agent-channels-count">
                       {{agent.channelsCount}}
                     </td>
-                    <td>
+                    <td class="flume-agent-sink-count">
                       {{agent.sinksCount}}
                     </td>
-                  </tr>
+                  {{/view}}
                 {{/each}}
               </tbody>
             {{/each}}
           {{else}}
             <tr>
-              <td colspan="6" class="empty-label">
+              <td colspan="6" id="flume-agents-empty-label" class="empty-label">
                 {{t services.service.summary.flume.noAgents}}
               </td>
             </tr>

+ 13 - 4
ambari-web/app/views/main/service/services/flume.js

@@ -26,12 +26,15 @@ App.MainDashboardServiceFlumeView = App.TableView.extend({
 
   selectedHost: null,
 
+  flumeAgentsCount:0,
+
   content: function () {
-    var hostNames = this.get('service.agents').mapProperty('hostName').uniq(),
+    var flumeAgents = this.get('service.agents'),
+    hostNames = flumeAgents.mapProperty('hostName').uniq(),
     content = [],
     self = this;
     hostNames.forEach(function(hostName) {
-      var agents = self.get('service.agents').filterProperty('hostName', hostName);
+      var agents = flumeAgents.filterProperty('hostName', hostName);
       content.push(
         Em.Object.create({
           hostName: hostName,
@@ -43,7 +46,9 @@ App.MainDashboardServiceFlumeView = App.TableView.extend({
       );
     });
     return content;
-  }.property('service.agents.length', 'service.@each.agents'),
+  }.property('App.FlumeAgent.@each.id', 'flumeAgentsCount'),
+
+
 
   summaryHeader: function () {
     var agents = App.FlumeService.find().objectAt(0).get('agents'),
@@ -95,7 +100,11 @@ App.MainDashboardServiceFlumeView = App.TableView.extend({
         agent.set('isStopAgentDisabled', agent.get('status') !== 'RUNNING');
       });
     });
-  }.observes('content.@each.agents.@each.status'),
+  }.observes('service.agents.@each.status'),
+
+  updateFlumeAgentsCount: function () {
+    this.set('flumeAgentsCount', this.get('service.agents.length'));
+  }.observes('service.agents.length'),
 
   /**
    * Action handler from flume tepmlate.