add_kerberos_routes.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  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. 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. router.transitionTo('step' + kerberosWizardController.get('currentStep'));
  108. });
  109. },
  110. step1: Em.Route.extend({
  111. route: '/step1',
  112. enter: function (router) {
  113. router.get('kerberosWizardController').setCurrentStep('1');
  114. },
  115. connectOutlets: function (router) {
  116. console.log('in addSecurity.step1:connectOutlets');
  117. var controller = router.get('kerberosWizardController');
  118. controller.dataLoading().done(function () {
  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. enter: function (router) {
  138. router.get('kerberosWizardController').setCurrentStep('2');
  139. },
  140. connectOutlets: function (router) {
  141. console.log('in kerberosWizardController.step2:connectOutlets');
  142. var controller = router.get('kerberosWizardController');
  143. controller.dataLoading().done(function () {
  144. controller.loadAllPriorSteps();
  145. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  146. kerberosWizardStep2Controller.set('wizardController', controller);
  147. controller.connectOutlet('kerberosWizardStep2', controller.get('content'));
  148. });
  149. },
  150. unroutePath: function () {
  151. return false;
  152. },
  153. back: function(router) {
  154. var controller = router.get('kerberosWizardStep2Controller');
  155. if (!controller.get('isBackBtnDisabled')) {
  156. router.transitionTo('step1')
  157. }
  158. },
  159. next: function (router) {
  160. var kerberosWizardController = router.get('kerberosWizardController');
  161. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  162. kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep2Controller);
  163. kerberosWizardController.clearTasksData();
  164. router.transitionTo('step3');
  165. }
  166. }),
  167. step3: Em.Route.extend({
  168. route: '/step3',
  169. enter: function (router) {
  170. router.get('kerberosWizardController').setCurrentStep('3');
  171. },
  172. connectOutlets: function (router) {
  173. console.log('in kerberosWizardController.step3:connectOutlets');
  174. var controller = router.get('kerberosWizardController');
  175. controller.dataLoading().done(function () {
  176. controller.loadAllPriorSteps();
  177. controller.connectOutlet('kerberosWizardStep3', controller.get('content'));
  178. });
  179. },
  180. unroutePath: function () {
  181. return false;
  182. },
  183. back: Em.Router.transitionTo('step2'),
  184. next: function (router) {
  185. var kerberosWizardController = router.get('kerberosWizardController');
  186. kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
  187. router.transitionTo('step4');
  188. }
  189. }),
  190. step4: Em.Route.extend({
  191. route: '/step4',
  192. enter: function (router) {
  193. router.get('kerberosWizardController').setCurrentStep('4');
  194. },
  195. connectOutlets: function (router) {
  196. console.log('in kerberosWizardController.step4:connectOutlets');
  197. var controller = router.get('kerberosWizardController');
  198. var step4Controller = router.get('kerberosWizardStep4Controller');
  199. controller.setCurrentStep(4);
  200. controller.dataLoading().done(function () {
  201. controller.loadAllPriorSteps();
  202. controller.setLowerStepsDisable(4);
  203. step4Controller.set('wizardController', controller);
  204. controller.connectOutlet('kerberosWizardStep4', controller.get('content'));
  205. });
  206. },
  207. unroutePath: function () {
  208. return false;
  209. },
  210. back: Em.Router.transitionTo('step3'),
  211. next: function (router) {
  212. var kerberosWizardController = router.get('kerberosWizardController');
  213. var kerberosWizardStep4Controller = router.get('kerberosWizardStep4Controller');
  214. kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep4Controller);
  215. kerberosWizardController.setDBProperty('tasksStatuses', null);
  216. kerberosWizardController.setDBProperty('tasksRequestIds', null);
  217. router.transitionTo('step5');
  218. }
  219. }),
  220. step5: Em.Route.extend({
  221. route: '/step5',
  222. enter: function (router) {
  223. router.get('kerberosWizardController').setCurrentStep('5');
  224. },
  225. connectOutlets: function (router) {
  226. console.log('in kerberosWizardController.step5:connectOutlets');
  227. var controller = router.get('kerberosWizardController');
  228. controller.dataLoading().done(function () {
  229. controller.setLowerStepsDisable(5);
  230. controller.loadAllPriorSteps();
  231. controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
  232. });
  233. },
  234. unroutePath: function () {
  235. return false;
  236. },
  237. back: Em.Router.transitionTo('step4'),
  238. next: function (router) {
  239. var kerberosWizardController = router.get('kerberosWizardController');
  240. kerberosWizardController.setDBProperty('tasksStatuses', null);
  241. kerberosWizardController.setDBProperty('tasksRequestIds', null);
  242. var step6Controller = router.get('kerberosWizardStep6Controller');
  243. var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
  244. step6Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result, request) {
  245. if (result === 'error' && data.status === 409) {
  246. step6Controller.putKerberosDescriptor(kerberosDescriptor).always(function (data) {
  247. step6Controller.unkerberizeCluster().always(function (data) {
  248. router.transitionTo('step6');
  249. });
  250. });
  251. } else {
  252. router.transitionTo('step6');
  253. }
  254. });
  255. }
  256. }),
  257. step6: Em.Route.extend({
  258. route: '/step6',
  259. enter: function (router) {
  260. router.get('kerberosWizardController').setCurrentStep('6');
  261. },
  262. connectOutlets: function (router) {
  263. console.log('in kerberosWizardController.step6:connectOutlets');
  264. var controller = router.get('kerberosWizardController');
  265. var stepController = router.get('kerberosWizardStep6Controller');
  266. controller.dataLoading().done(function () {
  267. controller.setLowerStepsDisable(6);
  268. controller.loadAllPriorSteps();
  269. stepController.setRequest();
  270. controller.connectOutlet('kerberosWizardStep6', controller.get('content'));
  271. });
  272. },
  273. retry: function () {
  274. var router = App.get('router');
  275. var stepController = router.get('kerberosWizardStep6Controller');
  276. stepController.setRequest();
  277. stepController.loadStep();
  278. },
  279. unroutePath: function () {
  280. return false;
  281. },
  282. back: Em.Router.transitionTo('step4'),
  283. next: function (router) {
  284. router.transitionTo('step7');
  285. }
  286. }),
  287. step7: Em.Route.extend({
  288. route: '/step7',
  289. enter: function (router) {
  290. router.get('kerberosWizardController').setCurrentStep('7');
  291. },
  292. connectOutlets: function (router) {
  293. console.log('in kerberosWizardController.step7:connectOutlets');
  294. var controller = router.get('kerberosWizardController');
  295. controller.dataLoading().done(function () {
  296. controller.setLowerStepsDisable(7);
  297. controller.loadAllPriorSteps();
  298. controller.connectOutlet('kerberosWizardStep7', controller.get('content'));
  299. });
  300. },
  301. unroutePath: function () {
  302. return false;
  303. },
  304. back: Em.Router.transitionTo('step6'),
  305. next: function (router) {
  306. var controller = router.get('kerberosWizardController');
  307. controller.finish();
  308. App.clusterStatus.setClusterStatus({
  309. clusterName: App.get('router').getClusterName(),
  310. clusterState: 'DEFAULT',
  311. localdb: App.db.data
  312. }, {
  313. alwaysCallback: function () {
  314. controller.get('popup').hide();
  315. App.get('router').transitionTo('adminKerberos.index');
  316. location.reload();
  317. }
  318. });
  319. }
  320. })
  321. });