add_kerberos_routes.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. var App = require('app');
  19. module.exports = App.WizardRoute.extend({
  20. route: '/enable',
  21. enter: function (router) {
  22. router.get('mainController').dataLoading().done(function () {
  23. var kerberosWizardController = router.get('kerberosWizardController');
  24. App.router.get('updateController').set('isWorking', false);
  25. var popup = App.ModalPopup.show({
  26. classNames: ['full-width-modal'],
  27. header: Em.I18n.t('admin.kerberos.wizard.header'),
  28. bodyClass: App.KerberosWizardView.extend({
  29. controller: kerberosWizardController
  30. }),
  31. primary: Em.I18n.t('form.cancel'),
  32. showFooter: false,
  33. secondary: null,
  34. onClose: function () {
  35. var self = this;
  36. switch (kerberosWizardController.get('currentStep')) {
  37. case "2":
  38. var step2Controller = router.get('kerberosWizardStep2Controller');
  39. if (step2Controller.get('testConnectionInProgress')) {
  40. step2Controller.showConnectionInProgressPopup(function () {
  41. kerberosWizardController.warnBeforeExitPopup(function () {
  42. self.exitWizard();
  43. }, false);
  44. });
  45. } else {
  46. kerberosWizardController.warnBeforeExitPopup(function () {
  47. self.exitWizard();
  48. }, false);
  49. }
  50. break;
  51. case "6":
  52. case "7":
  53. kerberosWizardController.warnBeforeExitPopup(function () {
  54. self.exitWizard();
  55. }, true);
  56. break;
  57. default:
  58. kerberosWizardController.warnBeforeExitPopup(function () {
  59. self.exitWizard();
  60. }, false);
  61. }
  62. },
  63. didInsertElement: function () {
  64. this._super();
  65. this.fitHeight();
  66. },
  67. exitWizard: function () {
  68. var kerberosProgressPageController = App.router.get('kerberosProgressPageController');
  69. var controller = App.router.get('kerberosWizardController');
  70. var exitPath = controller.getDBProperty('onClosePath') || 'adminKerberos.index';
  71. controller.clearTasksData();
  72. controller.discardChanges().then(function() {
  73. if (App.get('testMode')) {
  74. App.get('router').transitionTo('adminKerberos.index');
  75. Em.run.next(function() {
  76. location.reload();
  77. });
  78. }
  79. controller.resetOnClose(controller, exitPath);
  80. });
  81. }
  82. });
  83. kerberosWizardController.set('popup', popup);
  84. var currentClusterStatus = App.clusterStatus.get('value');
  85. if (currentClusterStatus) {
  86. if (App.get('testMode')) {
  87. kerberosWizardController.setCurrentStep(App.db.data.KerberosWizard.currentStep);
  88. } else {
  89. switch (currentClusterStatus.clusterState) {
  90. case 'KERBEROS_DEPLOY' :
  91. kerberosWizardController.setCurrentStep(currentClusterStatus.localdb.KerberosWizard.currentStep);
  92. break;
  93. default:
  94. var currStep = App.get('router.kerberosWizardController.currentStep');
  95. kerberosWizardController.setCurrentStep(currStep);
  96. break;
  97. }
  98. }
  99. }
  100. Em.run.next(function(){
  101. App.router.get('wizardWatcherController').setUser(kerberosWizardController.get('name'));
  102. router.transitionTo('step' + kerberosWizardController.get('currentStep'));
  103. });
  104. });
  105. },
  106. step1: Em.Route.extend({
  107. route: '/step1',
  108. connectOutlets: function (router) {
  109. var controller = router.get('kerberosWizardController');
  110. controller.dataLoading().done(function () {
  111. router.get('kerberosWizardController').setCurrentStep('1');
  112. controller.loadAllPriorSteps();
  113. controller.connectOutlet('kerberosWizardStep1', controller.get('content'));
  114. });
  115. },
  116. unroutePath: function () {
  117. return false;
  118. },
  119. next: function (router) {
  120. var kerberosWizardController = router.get('kerberosWizardController');
  121. var kerberosStep1controller = router.get('kerberosWizardStep1Controller');
  122. kerberosWizardController.saveKerberosOption(kerberosStep1controller);
  123. kerberosWizardController.setDBProperty('serviceConfigProperties', null);
  124. router.transitionTo('step2');
  125. }
  126. }),
  127. step2: Em.Route.extend({
  128. route: '/step2',
  129. connectOutlets: function (router) {
  130. var controller = router.get('kerberosWizardController');
  131. controller.dataLoading().done(function () {
  132. router.get('kerberosWizardController').setCurrentStep('2');
  133. controller.loadAllPriorSteps();
  134. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  135. kerberosWizardStep2Controller.set('wizardController', controller);
  136. controller.connectOutlet('kerberosWizardStep2', controller.get('content'));
  137. });
  138. },
  139. unroutePath: function () {
  140. return false;
  141. },
  142. back: function(router) {
  143. var controller = router.get('kerberosWizardStep2Controller');
  144. var kerberosWizardController = router.get('kerberosWizardController');
  145. if (!controller.get('isBackBtnDisabled')) {
  146. kerberosWizardController.overrideVisibility(controller.get('configs'), true, []);
  147. router.transitionTo('step1');
  148. }
  149. },
  150. next: function (router) {
  151. var kerberosWizardController = router.get('kerberosWizardController');
  152. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  153. if (kerberosWizardController.get('skipClientInstall')) {
  154. kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'manage_identities').set('value', 'false');
  155. kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'install_packages').set('value', 'false');
  156. kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'manage_krb5_conf').set('value', 'false');
  157. }
  158. kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep2Controller);
  159. kerberosWizardController.clearTasksData();
  160. if (kerberosWizardController.get('skipClientInstall')) {
  161. kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
  162. router.transitionTo('step4');
  163. } else {
  164. router.transitionTo('step3');
  165. }
  166. }
  167. }),
  168. step3: Em.Route.extend({
  169. route: '/step3',
  170. connectOutlets: function (router) {
  171. var controller = router.get('kerberosWizardController');
  172. controller.dataLoading().done(function () {
  173. router.get('kerberosWizardController').setCurrentStep('3');
  174. controller.loadAllPriorSteps();
  175. controller.connectOutlet('kerberosWizardStep3', controller.get('content'));
  176. });
  177. },
  178. unroutePath: function () {
  179. return false;
  180. },
  181. back: Em.Router.transitionTo('step2'),
  182. next: function (router) {
  183. var kerberosWizardController = router.get('kerberosWizardController');
  184. kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
  185. kerberosWizardController.clearCachedStepConfigValues(router.get('kerberosWizardStep4Controller'));
  186. router.transitionTo('step4');
  187. }
  188. }),
  189. step4: Em.Route.extend({
  190. route: '/step4',
  191. connectOutlets: function (router) {
  192. var controller = router.get('kerberosWizardController');
  193. var step4Controller = router.get('kerberosWizardStep4Controller');
  194. controller.setCurrentStep(4);
  195. controller.dataLoading().done(function () {
  196. router.get('kerberosWizardController').setCurrentStep('4');
  197. controller.loadAllPriorSteps();
  198. controller.setLowerStepsDisable(4);
  199. step4Controller.set('wizardController', controller);
  200. controller.connectOutlet('kerberosWizardStep4', controller.get('content'));
  201. });
  202. },
  203. unroutePath: function () {
  204. return false;
  205. },
  206. back: function (router) {
  207. if (router.get('kerberosWizardController.skipClientInstall')) {
  208. router.transitionTo('step2');
  209. } else {
  210. router.transitionTo('step3');
  211. }
  212. },
  213. next: function (router) {
  214. var kerberosWizardController = router.get('kerberosWizardController');
  215. var step5Controller = router.get('kerberosWizardStep5Controller');
  216. var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
  217. kerberosWizardController.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
  218. step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result) {
  219. if (result === 'error' && data.status === 409) {
  220. step5Controller.putKerberosDescriptor(kerberosDescriptor);
  221. } else {
  222. step5Controller.unkerberizeCluster();
  223. }
  224. });
  225. }
  226. }),
  227. step5: Em.Route.extend({
  228. route: '/step5',
  229. connectOutlets: function (router) {
  230. var controller = router.get('kerberosWizardController');
  231. controller.dataLoading().done(function () {
  232. router.get('kerberosWizardController').setCurrentStep('5');
  233. controller.setLowerStepsDisable(5);
  234. controller.loadAllPriorSteps();
  235. controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
  236. });
  237. },
  238. unroutePath: function () {
  239. return false;
  240. },
  241. exitWizard: function (router) {
  242. var popup = router.get('kerberosWizardController.popup');
  243. popup.onClose();
  244. },
  245. downloadCSV: function (router) {
  246. var kerberosWizardStep5Controller = router.get('kerberosWizardStep5Controller');
  247. kerberosWizardStep5Controller.getCSVData();
  248. },
  249. back: Em.Router.transitionTo('step4'),
  250. next: function (router) {
  251. var kerberosWizardController = router.get('kerberosWizardController');
  252. kerberosWizardController.setDBProperties({
  253. tasksStatuses: null,
  254. tasksRequestIds: null
  255. });
  256. router.transitionTo('step6');
  257. }
  258. }),
  259. step6: Em.Route.extend({
  260. route: '/step6',
  261. connectOutlets: function (router) {
  262. var controller = router.get('kerberosWizardController');
  263. controller.dataLoading().done(function () {
  264. router.get('kerberosWizardController').setCurrentStep('6');
  265. controller.setLowerStepsDisable(6);
  266. controller.loadAllPriorSteps();
  267. controller.connectOutlet('kerberosWizardStep6', controller.get('content'));
  268. });
  269. },
  270. unroutePath: function () {
  271. return false;
  272. },
  273. back: Em.Router.transitionTo('step4'),
  274. next: function (router) {
  275. var kerberosWizardController = router.get('kerberosWizardController');
  276. kerberosWizardController.setDBProperties({
  277. tasksStatuses: null,
  278. tasksRequestIds: null
  279. });
  280. router.transitionTo('step7');
  281. }
  282. }),
  283. step7: Em.Route.extend({
  284. route: '/step7',
  285. connectOutlets: function (router) {
  286. var controller = router.get('kerberosWizardController');
  287. var step7Controller = router.get('kerberosWizardStep7Controller');
  288. controller.dataLoading().done(function () {
  289. router.get('kerberosWizardController').setCurrentStep('7');
  290. controller.setLowerStepsDisable(7);
  291. controller.loadAllPriorSteps();
  292. step7Controller.setRequest();
  293. controller.connectOutlet('kerberosWizardStep7', controller.get('content'));
  294. });
  295. },
  296. unroutePath: function () {
  297. return false;
  298. },
  299. back: Em.Router.transitionTo('step4'),
  300. next: function (router) {
  301. router.transitionTo('step8');
  302. }
  303. }),
  304. step8: Em.Route.extend({
  305. route: '/step8',
  306. connectOutlets: function (router) {
  307. var controller = router.get('kerberosWizardController');
  308. controller.dataLoading().done(function () {
  309. router.get('kerberosWizardController').setCurrentStep('8');
  310. controller.setLowerStepsDisable(8);
  311. controller.loadAllPriorSteps();
  312. controller.connectOutlet('kerberosWizardStep8', controller.get('content'));
  313. });
  314. },
  315. unroutePath: function () {
  316. return false;
  317. },
  318. back: Em.Router.transitionTo('step7'),
  319. next: function (router) {
  320. var controller = router.get('kerberosWizardController');
  321. controller.resetOnClose(controller, 'adminKerberos.index');
  322. }
  323. })
  324. });