소스 검색

AMBARI-18149. Config History: disable link to configs for deleted group (akovalenko)

Aleksandr Kovalenko 8 년 전
부모
커밋
7861fcb06c

+ 7 - 0
ambari-web/app/models/configs/service_config_version.js

@@ -50,6 +50,13 @@ App.ServiceConfigVersion = DS.Model.extend({
     return this.get('isDefault') ? App.ServiceConfigGroup.defaultGroupName : this.get('groupName');
   }.property('groupName','isDefault'),
 
+  /**
+   * @type {Boolean}
+   */
+  isConfigGroupDeleted: function () {
+    return this.get('groupName') === 'Deleted';
+  }.property('groupName'),
+
   /**
    * @type {string}
    */

+ 2 - 2
ambari-web/app/views/main/dashboard/config_history_view.js

@@ -192,8 +192,8 @@ App.MainConfigHistoryView = App.TableView.extend(App.TableServerViewMixin, {
 
     // Define if show plain text label or link
     isServiceLinkDisabled: function () {
-      return this.get('content.serviceName') === 'KERBEROS' && !App.Service.find().someProperty('serviceName', 'KERBEROS');
-    }.property('content.serviceName')
+      return this.get('content.serviceName') === 'KERBEROS' && !App.Service.find().someProperty('serviceName', 'KERBEROS') || this.get('content.isConfigGroupDeleted');
+    }.property('content.serviceName', 'content.isConfigGroupDeleted')
   }),
 
   /**

+ 32 - 4
ambari-web/test/views/main/dashboard/config_history_view_test.js

@@ -204,11 +204,12 @@ describe('App.MainConfigHistoryView', function() {
   });
 
   describe("#ConfigVersionView", function () {
-    var subView = view.get('ConfigVersionView').create({
-      parentView: view
-    });
-
+    var subView;
     before(function () {
+      subView = view.get('ConfigVersionView').create({
+        parentView: view
+      });
+
       sinon.stub(App, 'tooltip', Em.K);
     });
     after(function () {
@@ -223,6 +224,33 @@ describe('App.MainConfigHistoryView', function() {
       subView.toggleShowLessStatus();
       expect(subView.get('showLessNotes')).to.be.false;
     });
+
+    describe("#isServiceLinkDisable", function () {
+      beforeEach(function () {
+        subView.set('content', Em.Object.create());
+        this.hasKerberos = sinon.stub(App.Service, 'find');
+      });
+      afterEach(function () {
+        App.Service.find.restore();
+      });
+      it("should be true for deleted kerberos groups", function () {
+        subView.set('content.serviceName', 'KERBEROS');
+        this.hasKerberos.returns([]);
+        expect(subView.get('isServiceLinkDisabled')).to.be.true;
+      });
+      it("should be false for deleted kerberos groups", function () {
+        subView.set('content.serviceName', 'KERBEROS');
+        subView.set('content.isConfigGroupDeleted', false);
+        this.hasKerberos.returns([{serviceName: 'KERBEROS'}]);
+        expect(subView.get('isServiceLinkDisabled')).to.be.false;
+      });
+      it("should be true if group is deleted", function () {
+        subView.set('content.serviceName', 'KERBEROS');
+        subView.set('content.isConfigGroupDeleted', true);
+        this.hasKerberos.returns([{serviceName: 'KERBEROS'}]);
+        expect(subView.get('isServiceLinkDisabled')).to.be.true;
+      });
+    });
   });
 
   describe('#didInsertElement()', function() {