add_kerberos_routes.js 11 KB

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