Repository: ambari Updated Branches: refs/heads/branch-2.0.0 8ae20f367 -> 1ae17455f
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/1ae17455 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1ae17455 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1ae17455 Branch: refs/heads/branch-2.0.0 Commit: 1ae17455f053eb8022777902641e6543cb2b4c92 Parents: 8ae20f3 Author: Alex Antonenko <[email protected]> Authored: Wed Feb 25 17:55:58 2015 +0200 Committer: Alex Antonenko <[email protected]> Committed: Wed Feb 25 18:01:03 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/1ae17455/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/1ae17455/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(); + }); + + }); });
