add_kerberos_routes.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  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.fitHeight();
  65. },
  66. exitWizard: function () {
  67. var self = this;
  68. var kerberosProgressPageController = App.router.get('kerberosProgressPageController');
  69. var controller = App.router.get('kerberosWizardController');
  70. controller.clearTasksData();
  71. controller.finish();
  72. App.get('router.updateController').set('isWorking', true);
  73. if (App.get('testMode')) {
  74. App.get('router').transitionTo('adminKerberos.index');
  75. location.reload();
  76. }
  77. App.clusterStatus.setClusterStatus({
  78. clusterName: App.router.getClusterName(),
  79. clusterState: 'DEFAULT',
  80. localdb: App.db.data
  81. }, {
  82. alwaysCallback: function () {
  83. self.hide();
  84. App.get('router').transitionTo('adminKerberos.index');
  85. location.reload();
  86. }
  87. });
  88. }
  89. });
  90. kerberosWizardController.set('popup', popup);
  91. var currentClusterStatus = App.clusterStatus.get('value');
  92. if (currentClusterStatus) {
  93. if (App.get('testMode')) {
  94. kerberosWizardController.setCurrentStep(App.db.data.KerberosWizard.currentStep);
  95. } else {
  96. switch (currentClusterStatus.clusterState) {
  97. case 'KERBEROS_DEPLOY' :
  98. kerberosWizardController.setCurrentStep(currentClusterStatus.localdb.KerberosWizard.currentStep);
  99. break;
  100. default:
  101. var currStep = App.get('router.kerberosWizardController.currentStep');
  102. kerberosWizardController.setCurrentStep(currStep);
  103. break;
  104. }
  105. }
  106. }
  107. Em.run.next(function(){
  108. router.transitionTo('step' + kerberosWizardController.get('currentStep'));
  109. });
  110. });
  111. },
  112. step1: Em.Route.extend({
  113. route: '/step1',
  114. connectOutlets: function (router) {
  115. console.log('in addSecurity.step1:connectOutlets');
  116. var controller = router.get('kerberosWizardController');
  117. controller.dataLoading().done(function () {
  118. router.get('kerberosWizardController').setCurrentStep('1');
  119. controller.loadAllPriorSteps();
  120. controller.connectOutlet('kerberosWizardStep1', controller.get('content'));
  121. });
  122. },
  123. unroutePath: function () {
  124. return false;
  125. },
  126. next: function (router) {
  127. var kerberosWizardController = router.get('kerberosWizardController');
  128. var kerberosStep1controller = router.get('kerberosWizardStep1Controller');
  129. kerberosWizardController.saveKerberosOption(kerberosStep1controller);
  130. kerberosWizardController.setDBProperty('serviceConfigProperties', null);
  131. kerberosWizardController.setDBProperty('advancedServiceConfig', null);
  132. router.transitionTo('step2');
  133. }
  134. }),
  135. step2: Em.Route.extend({
  136. route: '/step2',
  137. connectOutlets: function (router) {
  138. console.log('in kerberosWizardController.step2:connectOutlets');
  139. var controller = router.get('kerberosWizardController');
  140. controller.dataLoading().done(function () {
  141. router.get('kerberosWizardController').setCurrentStep('2');
  142. controller.loadAllPriorSteps();
  143. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  144. kerberosWizardStep2Controller.set('wizardController', controller);
  145. controller.connectOutlet('kerberosWizardStep2', controller.get('content'));
  146. });
  147. },
  148. unroutePath: function () {
  149. return false;
  150. },
  151. back: function(router) {
  152. var controller = router.get('kerberosWizardStep2Controller');
  153. if (!controller.get('isBackBtnDisabled')) {
  154. router.transitionTo('step1')
  155. }
  156. },
  157. next: function (router) {
  158. var kerberosWizardController = router.get('kerberosWizardController');
  159. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  160. kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep2Controller);
  161. kerberosWizardController.clearTasksData();
  162. router.transitionTo('step3');
  163. }
  164. }),
  165. step3: Em.Route.extend({
  166. route: '/step3',
  167. connectOutlets: function (router) {
  168. console.log('in kerberosWizardController.step3:connectOutlets');
  169. var controller = router.get('kerberosWizardController');
  170. controller.dataLoading().done(function () {
  171. router.get('kerberosWizardController').setCurrentStep('3');
  172. controller.loadAllPriorSteps();
  173. controller.connectOutlet('kerberosWizardStep3', controller.get('content'));
  174. });
  175. },
  176. unroutePath: function () {
  177. return false;
  178. },
  179. back: Em.Router.transitionTo('step2'),
  180. next: function (router) {
  181. var kerberosWizardController = router.get('kerberosWizardController');
  182. kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
  183. router.transitionTo('step4');
  184. }
  185. }),
  186. step4: Em.Route.extend({
  187. route: '/step4',
  188. connectOutlets: function (router) {
  189. console.log('in kerberosWizardController.step4:connectOutlets');
  190. var controller = router.get('kerberosWizardController');
  191. var step4Controller = router.get('kerberosWizardStep4Controller');
  192. controller.setCurrentStep(4);
  193. controller.dataLoading().done(function () {
  194. router.get('kerberosWizardController').setCurrentStep('4');
  195. controller.loadAllPriorSteps();
  196. controller.setLowerStepsDisable(4);
  197. step4Controller.set('wizardController', controller);
  198. controller.connectOutlet('kerberosWizardStep4', controller.get('content'));
  199. });
  200. },
  201. unroutePath: function () {
  202. return false;
  203. },
  204. back: Em.Router.transitionTo('step3'),
  205. next: function (router) {
  206. var kerberosWizardController = router.get('kerberosWizardController');
  207. var kerberosWizardStep4Controller = router.get('kerberosWizardStep4Controller');
  208. kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep4Controller);
  209. kerberosWizardController.setDBProperty('tasksStatuses', null);
  210. kerberosWizardController.setDBProperty('tasksRequestIds', null);
  211. router.transitionTo('step5');
  212. }
  213. }),
  214. step5: Em.Route.extend({
  215. route: '/step5',
  216. connectOutlets: function (router) {
  217. console.log('in kerberosWizardController.step5:connectOutlets');
  218. var controller = router.get('kerberosWizardController');
  219. controller.dataLoading().done(function () {
  220. router.get('kerberosWizardController').setCurrentStep('5');
  221. controller.setLowerStepsDisable(5);
  222. controller.loadAllPriorSteps();
  223. controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
  224. });
  225. },
  226. unroutePath: function () {
  227. return false;
  228. },
  229. back: Em.Router.transitionTo('step4'),
  230. next: function (router) {
  231. var kerberosWizardController = router.get('kerberosWizardController');
  232. kerberosWizardController.setDBProperty('tasksStatuses', null);
  233. kerberosWizardController.setDBProperty('tasksRequestIds', null);
  234. var step6Controller = router.get('kerberosWizardStep6Controller');
  235. var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
  236. step6Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result, request) {
  237. if (result === 'error' && data.status === 409) {
  238. step6Controller.putKerberosDescriptor(kerberosDescriptor);
  239. } else {
  240. router.transitionTo('step6');
  241. }
  242. });
  243. }
  244. }),
  245. step6: Em.Route.extend({
  246. route: '/step6',
  247. connectOutlets: function (router) {
  248. console.log('in kerberosWizardController.step6:connectOutlets');
  249. var controller = router.get('kerberosWizardController');
  250. var stepController = router.get('kerberosWizardStep6Controller');
  251. controller.dataLoading().done(function () {
  252. router.get('kerberosWizardController').setCurrentStep('6');
  253. controller.setLowerStepsDisable(6);
  254. controller.loadAllPriorSteps();
  255. stepController.setRequest();
  256. controller.connectOutlet('kerberosWizardStep6', controller.get('content'));
  257. });
  258. },
  259. retry: function (router) {
  260. router.get('kerberosWizardStep6Controller').setRequest(true);
  261. },
  262. unroutePath: function () {
  263. return false;
  264. },
  265. back: Em.Router.transitionTo('step4'),
  266. next: function (router) {
  267. router.transitionTo('step7');
  268. }
  269. }),
  270. step7: Em.Route.extend({
  271. route: '/step7',
  272. connectOutlets: function (router) {
  273. console.log('in kerberosWizardController.step7:connectOutlets');
  274. var controller = router.get('kerberosWizardController');
  275. controller.dataLoading().done(function () {
  276. router.get('kerberosWizardController').setCurrentStep('7');
  277. controller.setLowerStepsDisable(7);
  278. controller.loadAllPriorSteps();
  279. controller.connectOutlet('kerberosWizardStep7', controller.get('content'));
  280. });
  281. },
  282. unroutePath: function () {
  283. return false;
  284. },
  285. back: Em.Router.transitionTo('step6'),
  286. next: function (router) {
  287. var controller = router.get('kerberosWizardController');
  288. controller.finish();
  289. App.clusterStatus.setClusterStatus({
  290. clusterName: App.get('router').getClusterName(),
  291. clusterState: 'DEFAULT',
  292. localdb: App.db.data
  293. }, {
  294. alwaysCallback: function () {
  295. controller.get('popup').hide();
  296. App.get('router').transitionTo('adminKerberos.index');
  297. location.reload();
  298. }
  299. });
  300. }
  301. })
  302. });