Просмотр исходного кода

AMBARI-16684. Ranger Tagsync component (added in HDP-2.5) is shown under Summary Tab when installed HDP-2.2 (akovalenko)

Aleksandr Kovalenko 9 лет назад
Родитель
Сommit
c4cd7856b1

+ 1 - 1
ambari-web/app/controllers/wizard/step8_controller.js

@@ -983,7 +983,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, App.wiz
   },
 
   createClusterSuccess: function (data, xhr, params) {
-    App.set('clusterName', params.cluster)
+    App.set('clusterName', params.cluster);
   },
 
   /**

+ 18 - 16
ambari-web/app/templates/main/service/services/ranger.hbs

@@ -19,22 +19,24 @@
 {{view view.dashboardMasterComponentView}}
 
 <!-- Ranger Tagsyncs -->
-<tr {{bindAttr class=":component view.rangerTagsyncComponent.componentName"}}>
-  <td class="summary-label">
-    <a href="#" {{action filterHosts view.rangerTagsyncComponent}}>{{t dashboard.services.ranger.rangerTagsyncs}}</a>
-  </td>
-  <td class="summary-value">
-    {{#if App.router.clusterController.isServiceContentFullyLoaded}}
-      <span>
-        {{#view App.ComponentLiveTextView liveComponentsBinding="view.service.rangerTagsyncsStarted" totalComponentsBinding="view.service.rangerTagsyncsTotal"}}
-          {{view.liveComponents}}/{{view.totalComponents}}
-        {{/view}}
-      </span>{{t common.started}}
-    {{else}}
-      {{t common.loading.eclipses}}
-    {{/if}}
-  </td>
-</tr>
+{{#if view.isRangerTagsyncInStack}}
+  <tr {{bindAttr class=":component view.rangerTagsyncComponent.componentName"}}>
+    <td class="summary-label">
+      <a href="#" {{action filterHosts view.rangerTagsyncComponent}}>{{t dashboard.services.ranger.rangerTagsyncs}}</a>
+    </td>
+    <td class="summary-value">
+      {{#if App.router.clusterController.isServiceContentFullyLoaded}}
+        <span>
+          {{#view App.ComponentLiveTextView liveComponentsBinding="view.service.rangerTagsyncsStarted" totalComponentsBinding="view.service.rangerTagsyncsTotal"}}
+            {{view.liveComponents}}/{{view.totalComponents}}
+          {{/view}}
+        </span>{{t common.started}}
+      {{else}}
+        {{t common.loading.eclipses}}
+      {{/if}}
+    </td>
+  </tr>
+{{/if}}
 
 {{#each item in controller.rangerPlugins}}
   {{#if item.isDisplayed}}

+ 8 - 0
ambari-web/app/views/main/service/services/ranger.js

@@ -27,6 +27,14 @@ App.MainDashboardServiceRangerView = App.MainDashboardServiceView.extend({
     componentName: 'RANGER_TAGSYNC'
   }),
 
+  /**
+   * Define if RANGER_TAGSYNC is present in the installed stack
+   * @type {Boolean}
+   */
+  isRangerTagsyncInStack: function () {
+    return App.StackServiceComponent.find().someProperty('componentName', 'RANGER_TAGSYNC');
+  }.property(),
+
   didInsertElement: function () {
     this.set('controller.isRangerUpdateWorking', true);
     App.updater.run(this.get('controller'), 'updateRangerPluginsStatus', 'isRangerUpdateWorking', App.bgOperationsUpdateInterval);

+ 22 - 0
ambari-web/test/views/main/service/services/ranger_test.js

@@ -45,4 +45,26 @@ describe('App.MainDashboardServiceRangerView', function () {
     });
   });
 
+  describe("#isRangerTagsyncInStack", function() {
+
+    beforeEach(function() {
+      this.mock = sinon.stub(App.StackServiceComponent, 'find');
+    });
+    afterEach(function() {
+      this.mock.restore();
+    });
+
+    it("no RANGER_TAGSYNC component", function() {
+      this.mock.returns([]);
+      view.propertyDidChange('isRangerTagsyncInStack');
+      expect(view.get('isRangerTagsyncInStack')).to.be.false;
+    });
+
+    it("NFS_GATEWAY component present", function() {
+      this.mock.returns([{componentName: 'RANGER_TAGSYNC'}]);
+      view.propertyDidChange('isRangerTagsyncInStack');
+      expect(view.get('isRangerTagsyncInStack')).to.be.true;
+    });
+  });
+
 });