AMBARI-19329. Install Wizard cannot proceed beyond Select Services page (akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/96b9a3a0 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/96b9a3a0 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/96b9a3a0 Branch: refs/heads/branch-2.5 Commit: 96b9a3a0acfabad943048623dc20a0989b7a142a Parents: 0722e54 Author: Aleksandr Kovalenko <[email protected]> Authored: Fri Dec 30 15:44:54 2016 +0200 Committer: Aleksandr Kovalenko <[email protected]> Committed: Tue Jan 10 16:47:07 2017 +0200 ---------------------------------------------------------------------- ambari-web/app/controllers/wizard.js | 6 +++--- ambari-web/app/controllers/wizard/step6_controller.js | 4 +++- ambari-web/test/controllers/wizard/step6_test.js | 10 ++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/96b9a3a0/ambari-web/app/controllers/wizard.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard.js b/ambari-web/app/controllers/wizard.js index bc73e8f..f0c2a02 100644 --- a/ambari-web/app/controllers/wizard.js +++ b/ambari-web/app/controllers/wizard.js @@ -1307,7 +1307,7 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, App.ThemesMappingM var hasServicesWithSlave = services.someProperty('hasSlave'); var hasServicesWithClient = services.someProperty('hasClient'); var hasServicesWithCustomAssignedNonMasters = services.someProperty('hasNonMastersWithCustomAssignment'); - var hasDependentSlaveComponent = this.hasDependentSlaveComponent(services); + var hasDependentSlaveComponent = this.get('name') === 'addServiceController' ? this.hasDependentSlaveComponent(services) : false; this.set('content.skipSlavesStep', (!hasServicesWithSlave && !hasServicesWithClient || !hasServicesWithCustomAssignedNonMasters) && !hasDependentSlaveComponent); if (this.get('content.skipSlavesStep')) { this.get('isStepDisabled').findProperty('step', step).set('value', this.get('content.skipSlavesStep')); @@ -1329,8 +1329,8 @@ App.WizardController = Em.Controller.extend(App.LocalStorage, App.ThemesMappingM service.get('serviceComponents').forEach(function (component) { component.get('dependencies').forEach(function (dependency) { var dependentService = App.StackService.find().findProperty('serviceName', dependency.serviceName); - var dependentComponent = dependentService.get('serviceComponents').findProperty('componentName', dependency.componentName); - if (dependentComponent.get('isSlave') && dependentService.get('isInstalled')) { + var dependentComponent = dependentService && dependentService.get('serviceComponents').findProperty('componentName', dependency.componentName); + if (dependentComponent && dependentComponent.get('isSlave') && dependentService.get('isInstalled')) { dependentSlaves.push({component: dependentComponent.get('componentName'), count: 0}); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/96b9a3a0/ambari-web/app/controllers/wizard/step6_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step6_controller.js b/ambari-web/app/controllers/wizard/step6_controller.js index 3968af7..0db9314 100644 --- a/ambari-web/app/controllers/wizard/step6_controller.js +++ b/ambari-web/app/controllers/wizard/step6_controller.js @@ -432,7 +432,9 @@ App.WizardStep6Controller = Em.Controller.extend(App.BlueprintMixin, { } else { this.restoreComponentsSelection(hostsObj, slaveComponents); } - this.enableCheckboxesForDependentComponents(hostsObj); + if (this.get('isAddServiceWizard')) { + this.enableCheckboxesForDependentComponents(hostsObj); + } this.selectClientHost(hostsObj); return hostsObj; }, http://git-wip-us.apache.org/repos/asf/ambari/blob/96b9a3a0/ambari-web/test/controllers/wizard/step6_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/wizard/step6_test.js b/ambari-web/test/controllers/wizard/step6_test.js index 356b371..87e2514 100644 --- a/ambari-web/test/controllers/wizard/step6_test.js +++ b/ambari-web/test/controllers/wizard/step6_test.js @@ -208,6 +208,7 @@ describe('App.WizardStep6Controller', function () { beforeEach(function() { controller.set('content.slaveComponentHosts', null); + controller.set('content.controllerName', null); }); it("selectRecommendedComponents should be called", function() { @@ -226,6 +227,15 @@ describe('App.WizardStep6Controller', function () { expect(controller.renderSlaves(hostsObj)).to.eql(hostsObj); expect(controller.selectClientHost.calledWith(hostsObj)).to.be.true; }); + it("enableCheckboxesForDependentComponents should not be called", function() { + expect(controller.renderSlaves(hostsObj)).to.eql(hostsObj); + expect(controller.enableCheckboxesForDependentComponents.calledOnce).to.be.false; + }); + it("enableCheckboxesForDependentComponents should be called", function() { + controller.set('content.controllerName', 'addServiceController'); + expect(controller.renderSlaves(hostsObj)).to.eql(hostsObj); + expect(controller.enableCheckboxesForDependentComponents.calledOnce).to.be.true; + }); }); describe("slaveComponents is defined", function() {
