blob: c8535b446843414ffa6a9ff3ee8b06a483f2858e [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var App = require('app');
module.exports = App.WizardRoute.extend({
route: '/enable',
enter: function (router) {
router.get('mainController').dataLoading().done(function() {
return App.clusterStatus.updateFromServer();
}).done(function () {
var kerberosWizardController = router.get('kerberosWizardController');
App.router.get('updateController').set('isWorking', false);
var popup = App.ModalPopup.show({
classNames: ['full-width-modal'],
header: Em.I18n.t('admin.kerberos.wizard.header'),
bodyClass: App.KerberosWizardView.extend({
controller: kerberosWizardController
}),
primary: Em.I18n.t('form.cancel'),
showFooter: false,
secondary: null,
onClose: function () {
var self = this;
switch (kerberosWizardController.get('currentStep')) {
case "2":
var step2Controller = router.get('kerberosWizardStep2Controller');
if (step2Controller.get('testConnectionInProgress')) {
step2Controller.showConnectionInProgressPopup(function () {
kerberosWizardController.warnBeforeExitPopup(function () {
self.exitWizard();
}, false);
});
} else {
kerberosWizardController.warnBeforeExitPopup(function () {
self.exitWizard();
}, false);
}
break;
case "6":
case "7":
kerberosWizardController.warnBeforeExitPopup(function () {
self.exitWizard();
}, true);
break;
case "8":
kerberosWizardController.warnBeforeExitPopup(function () {
self.exitWizard(true);
}, false);
break;
default:
kerberosWizardController.warnBeforeExitPopup(function () {
self.exitWizard();
}, false);
}
},
didInsertElement: function () {
this._super();
this.fitHeight();
},
exitWizard: function (skipDiscardChanges) {
var controller = App.router.get('kerberosWizardController');
var exitPath = controller.getDBProperty('onClosePath') || 'adminKerberos.index';
controller.clearTasksData();
if (skipDiscardChanges) {
controller.resetOnClose(controller, exitPath);
} else {
controller.discardChanges().then(function() {
controller.resetOnClose(controller, exitPath);
});
}
}
});
kerberosWizardController.set('popup', popup);
var currentClusterStatus = App.clusterStatus.get('value');
if (currentClusterStatus) {
if (App.get('testMode')) {
kerberosWizardController.setCurrentStep(App.db.data.KerberosWizard.currentStep);
} else {
switch (currentClusterStatus.clusterState) {
case 'KERBEROS_DEPLOY' :
kerberosWizardController.setCurrentStep(currentClusterStatus.localdb.KerberosWizard.currentStep);
break;
default:
var currStep = App.get('router.kerberosWizardController.currentStep');
kerberosWizardController.setCurrentStep(currStep);
break;
}
}
}
Em.run.next(function(){
App.router.get('wizardWatcherController').setUser(kerberosWizardController.get('name'));
router.transitionTo('step' + kerberosWizardController.get('currentStep'));
});
});
},
step1: App.StepRoute.extend({
route: '/step1',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('1');
controller.loadAllPriorSteps().done(function() {
controller.connectOutlet('kerberosWizardStep1', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
nextTransition: function (router) {
var kerberosWizardController = router.get('kerberosWizardController');
var kerberosStep1controller = router.get('kerberosWizardStep1Controller');
kerberosWizardController.saveKerberosOption(kerberosStep1controller);
kerberosWizardController.clearServiceConfigProperties().always(function() {
router.transitionTo('step2');
});
}
}),
step2: App.StepRoute.extend({
route: '/step2',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('2');
controller.loadAllPriorSteps().done(function() {
var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
kerberosWizardStep2Controller.set('wizardController', controller);
controller.connectOutlet('kerberosWizardStep2', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
backTransition: function(router) {
var controller = router.get('kerberosWizardStep2Controller');
var kerberosWizardController = router.get('kerberosWizardController');
kerberosWizardController.overrideVisibility(controller.get('configs'), true, []);
router.transitionTo('step1');
},
nextTransition: function (router) {
var kerberosWizardController = router.get('kerberosWizardController');
var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
if (kerberosWizardController.get('skipClientInstall')) {
kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'manage_identities').set('value', 'false');
kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'install_packages').set('value', 'false');
kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'manage_krb5_conf').set('value', 'false');
}
kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep2Controller).always(function() {
kerberosWizardController.clearTasksData();
if (kerberosWizardController.get('skipClientInstall')) {
kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
router.transitionTo('step4');
} else {
router.transitionTo('step3');
}
});
}
}),
step3: App.StepRoute.extend({
route: '/step3',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('3');
controller.loadAllPriorSteps().done(function() {
controller.connectOutlet('kerberosWizardStep3', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
back: Em.Router.transitionTo('step2'),
nextTransition: function (router) {
var kerberosWizardController = router.get('kerberosWizardController');
kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
kerberosWizardController.clearCachedStepConfigValues(router.get('kerberosWizardStep4Controller'));
router.transitionTo('step4');
}
}),
step4: App.StepRoute.extend({
route: '/step4',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
var step4Controller = router.get('kerberosWizardStep4Controller');
controller.setCurrentStep(4);
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('4');
controller.loadAllPriorSteps().done(function() {
controller.setLowerStepsDisable(4);
step4Controller.set('wizardController', controller);
controller.connectOutlet('kerberosWizardStep4', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
backTransition: function (router) {
if (router.get('kerberosWizardController.skipClientInstall')) {
router.transitionTo('step2');
} else {
router.transitionTo('step3');
}
},
nextTransition: function (router) {
var kerberosWizardController = router.get('kerberosWizardController');
var step5Controller = router.get('kerberosWizardStep5Controller');
var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
kerberosWizardController.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result) {
if (result === 'error' && data.status === 409) {
step5Controller.putKerberosDescriptor(kerberosDescriptor);
} else {
step5Controller.unkerberizeCluster();
}
});
}
}),
step5: App.StepRoute.extend({
route: '/step5',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('5');
controller.setLowerStepsDisable(5);
controller.loadAllPriorSteps().done(function() {
controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
exitWizard: function (router) {
var popup = router.get('kerberosWizardController.popup');
popup.onClose();
},
downloadCSV: function (router) {
var kerberosWizardStep5Controller = router.get('kerberosWizardStep5Controller');
kerberosWizardStep5Controller.getCSVData();
},
backTransition: Em.Router.transitionTo('step4'),
nextTransition: function (router) {
var kerberosWizardController = router.get('kerberosWizardController');
kerberosWizardController.setDBProperties({
tasksStatuses: null,
tasksRequestIds: null
});
router.transitionTo('step6');
}
}),
step6: App.StepRoute.extend({
route: '/step6',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('6');
controller.setLowerStepsDisable(6);
controller.loadAllPriorSteps().done(function() {
controller.connectOutlet('kerberosWizardStep6', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
backTransition: Em.Router.transitionTo('step4'),
nextTransition: function (router) {
var kerberosWizardController = router.get('kerberosWizardController');
kerberosWizardController.setDBProperties({
tasksStatuses: null,
tasksRequestIds: null
});
router.transitionTo('step7');
}
}),
step7: App.StepRoute.extend({
route: '/step7',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
var step7Controller = router.get('kerberosWizardStep7Controller');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('7');
controller.setLowerStepsDisable(7);
controller.loadAllPriorSteps().done(function() {
step7Controller.setRequest();
controller.connectOutlet('kerberosWizardStep7', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
backTransition: Em.Router.transitionTo('step4'),
nextTransition: function (router) {
router.transitionTo('step8');
}
}),
step8: App.StepRoute.extend({
route: '/step8',
connectOutlets: function (router) {
var controller = router.get('kerberosWizardController');
controller.dataLoading().done(function () {
router.get('kerberosWizardController').setCurrentStep('8');
controller.setLowerStepsDisable(8);
controller.loadAllPriorSteps().done(function() {
controller.connectOutlet('kerberosWizardStep8', controller.get('content'));
});
});
},
unroutePath: function () {
return false;
},
backTransition: Em.Router.transitionTo('step7'),
nextTransition: function (router) {
var controller = router.get('kerberosWizardController');
controller.resetOnClose(controller, 'adminKerberos.index');
}
})
});