add_kerberos_routes.js 12 KB

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