AMBARI-5951. Installer does not proceed beyond Customize Services if Hive is not selected. (yusaku via jaimin)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6962851f Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6962851f Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6962851f Branch: refs/heads/trunk Commit: 6962851fdd62095383c1cfda0eb61b0518f3013d Parents: fb77bc4 Author: Jaimin Jetly <[email protected]> Authored: Thu May 29 16:10:05 2014 -0700 Committer: Jaimin Jetly <[email protected]> Committed: Thu May 29 16:10:05 2014 -0700 ---------------------------------------------------------------------- .../app/controllers/wizard/step7_controller.js | 94 ++++++++++++-------- 1 file changed, 58 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6962851f/ambari-web/app/controllers/wizard/step7_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js index b07ca74..b6b675a 100644 --- a/ambari-web/app/controllers/wizard/step7_controller.js +++ b/ambari-web/app/controllers/wizard/step7_controller.js @@ -970,47 +970,69 @@ App.WizardStep7Controller = Em.Controller.extend({ }, /** + * Check if new MySql database was chosen for Hive service + * and it is not located on the same host as Ambari server + * that using MySql database too. + * + * @method resolveHiveMysqlDatabase + **/ + resolveHiveMysqlDatabase: function() { + var hiveService = this.get('content.services').findProperty('serviceName', 'HIVE'); + if (!hiveService || !hiveService.get('isSelected') || hiveService.get('isInstalled')) { + this.moveNext(); + } + var hiveDBType = this.get('stepConfigs').findProperty('serviceName', 'HIVE').configs.findProperty('name', 'hive_database').value; + if (hiveDBType == 'New MySQL Database') { + var self= this; + this.checkMySQLHost().done(function () { + if (self.get('mySQLServerConflict')) { + // error popup before you can proceed + return App.ModalPopup.show({ + header: Em.I18n.t('installer.step7.popup.mySQLWarning.header'), + bodyClass: Ember.View.extend({ + template: Ember.Handlebars.compile(Em.I18n.t('installer.step7.popup.mySQLWarning.body')) + }), + secondary: Em.I18n.t('installer.step7.popup.mySQLWarning.button.gotostep5'), + primary: Em.I18n.t('installer.step7.popup.mySQLWarning.button.dismiss'), + onSecondary: function (){ + var parent = this; + return App.ModalPopup.show({ + header: Em.I18n.t('installer.step7.popup.mySQLWarning.confirmation.header'), + bodyClass: Ember.View.extend({ + template: Ember.Handlebars.compile( Em.I18n.t('installer.step7.popup.mySQLWarning.confirmation.body')) + }), + onPrimary: function (){ + this.hide(); + parent.hide(); + // go back to step 5: assign masters and disable default navigation warning + App.router.get('installerController').gotoStep(5, true); + } + }); + } + }); + } else { + self.moveNext(); + } + }); + } else { + this.moveNext(); + } + }, + + /** + * Proceed to the next step + **/ + moveNext: function() { + App.router.send('next'); + }, + + /** * Click-handler on Next button * @method submit */ submit: function () { if (!this.get('isSubmitDisabled')) { - var hiveDBType = this.get('stepConfigs').findProperty('serviceName', 'HIVE').configs.findProperty('name', 'hive_database').value; - if (hiveDBType == 'New MySQL Database') { - var self= this; - this.checkMySQLHost().done(function () { - if (self.get('mySQLServerConflict')) { - // error popup before you can proceed - return App.ModalPopup.show({ - header: Em.I18n.t('installer.step7.popup.mySQLWarning.header'), - bodyClass: Ember.View.extend({ - template: Ember.Handlebars.compile( Em.I18n.t('installer.step7.popup.mySQLWarning.body')) - }), - secondary: Em.I18n.t('installer.step7.popup.mySQLWarning.button.gotostep5'), - primary: Em.I18n.t('installer.step7.popup.mySQLWarning.button.dismiss'), - onSecondary: function (){ - var parent = this; - return App.ModalPopup.show({ - header: Em.I18n.t('installer.step7.popup.mySQLWarning.confirmation.header'), - bodyClass: Ember.View.extend({ - template: Ember.Handlebars.compile( Em.I18n.t('installer.step7.popup.mySQLWarning.confirmation.body')) - }), - onPrimary: function (){ - this.hide(); - parent.hide(); - // go back to step 5: assign masters and disable default navigation warning - App.router.get('installerController').gotoStep(5, true); - } - }); - } - }); - } else { - App.router.send('next'); - } - }); - } else { - App.router.send('next'); - } + this.resolveHiveMysqlDatabase(); } }
