Repository: ambari Updated Branches: refs/heads/trunk 3ca4b0383 -> 38d3e2183
AMBARI-9796. Kerberos page not loading properly after ambari upgrade (alexantonenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/38d3e218 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/38d3e218 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/38d3e218 Branch: refs/heads/trunk Commit: 38d3e21833c62492e878ff753c49f96db7046fff Parents: 3ca4b03 Author: Alex Antonenko <[email protected]> Authored: Wed Feb 25 18:01:03 2015 +0200 Committer: Alex Antonenko <[email protected]> Committed: Wed Feb 25 18:02:28 2015 +0200 ---------------------------------------------------------------------- .../app/controllers/main/admin/kerberos.js | 13 ++++++++ .../controllers/main/admin/kerberos_test.js | 34 ++++++++++++++++++++ 2 files changed, 47 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/38d3e218/ambari-web/app/controllers/main/admin/kerberos.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/admin/kerberos.js b/ambari-web/app/controllers/main/admin/kerberos.js index 808c2c7..0a2bf8d 100644 --- a/ambari-web/app/controllers/main/admin/kerberos.js +++ b/ambari-web/app/controllers/main/admin/kerberos.js @@ -226,6 +226,19 @@ App.MainAdminKerberosController = App.KerberosWizardStep4Controller.extend({ }, /** + * Override <code>App.AddSecurityConfigs</code>. + * @returns {$.Deferred} + */ + getDescriptorConfigs: function() { + var self = this; + // handle not existing artifact resource cluster + return this._super().fail(function() { + // if artifacts/kerberos_descriptor absent we should kerberize cluster. + self.set('securityEnabled', false); + }); + }, + + /** * Override <code>App.KerberosWizardStep4Controller</code> * * @param {App.ServiceConfigProperty[]} properties http://git-wip-us.apache.org/repos/asf/ambari/blob/38d3e218/ambari-web/test/controllers/main/admin/kerberos_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/kerberos_test.js b/ambari-web/test/controllers/main/admin/kerberos_test.js index 57b9c94..cee070b 100644 --- a/ambari-web/test/controllers/main/admin/kerberos_test.js +++ b/ambari-web/test/controllers/main/admin/kerberos_test.js @@ -143,4 +143,38 @@ describe('App.MainAdminKerberosController', function() { }); }); + + describe('#loadStep', function() { + + it('security enabled but kerberos descriptor resource doesn\'t exist for cluster, security can be enabled', function() { + var controller = App.MainAdminKerberosController.create({ securityEnabled: true }); + sinon.stub(App.router, 'get').withArgs('mainAdminKerberosController.securityEnabled').returns(true); + sinon.spy(controller, 'setStepConfigs'); + sinon.stub(controller, 'loadClusterDescriptorConfigs').returns($.Deferred().reject()); + controller.loadStep(); + App.router.get.restore(); + controller.loadClusterDescriptorConfigs.restore(); + // configurations will not set + expect(controller.setStepConfigs.called).to.be.false; + controller.setStepConfigs.restore(); + // security status should change to `false` + expect(controller.get('securityEnabled')).to.be.false; + }); + + it('security enabled and kerberos descriptor artifacts resource saved, security was enabled successfully', function() { + var controller = App.MainAdminKerberosController.create({ securityEnabled: true }); + sinon.stub(App.router, 'get').withArgs('mainAdminKerberosController.securityEnabled').returns(true); + sinon.stub(controller, 'setStepConfigs').returns(true); + sinon.stub(controller, 'createServicesStackDescriptorConfigs').returns($.Deferred().resolve()); + sinon.stub(controller, 'loadClusterDescriptorConfigs').returns($.Deferred().resolve()); + controller.loadStep(); + App.router.get.restore(); + controller.createServicesStackDescriptorConfigs.restore(); + controller.loadClusterDescriptorConfigs.restore(); + // configurations will set with current descriptor object + expect(controller.setStepConfigs.called).to.be.true; + controller.setStepConfigs.restore(); + }); + + }); });
