add_kerberos_routes.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  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. return App.clusterStatus.updateFromServer();
  24. }).done(function () {
  25. var kerberosWizardController = router.get('kerberosWizardController');
  26. App.router.get('updateController').set('isWorking', false);
  27. var popup = App.ModalPopup.show({
  28. classNames: ['full-width-modal'],
  29. header: Em.I18n.t('admin.kerberos.wizard.header'),
  30. bodyClass: App.KerberosWizardView.extend({
  31. controller: kerberosWizardController
  32. }),
  33. primary: Em.I18n.t('form.cancel'),
  34. showFooter: false,
  35. secondary: null,
  36. onClose: function () {
  37. var self = this;
  38. switch (kerberosWizardController.get('currentStep')) {
  39. case "2":
  40. var step2Controller = router.get('kerberosWizardStep2Controller');
  41. if (step2Controller.get('testConnectionInProgress')) {
  42. step2Controller.showConnectionInProgressPopup(function () {
  43. kerberosWizardController.warnBeforeExitPopup(function () {
  44. self.exitWizard();
  45. }, false);
  46. });
  47. } else {
  48. kerberosWizardController.warnBeforeExitPopup(function () {
  49. self.exitWizard();
  50. }, false);
  51. }
  52. break;
  53. case "6":
  54. case "7":
  55. kerberosWizardController.warnBeforeExitPopup(function () {
  56. self.exitWizard();
  57. }, true);
  58. break;
  59. default:
  60. kerberosWizardController.warnBeforeExitPopup(function () {
  61. self.exitWizard();
  62. }, false);
  63. }
  64. },
  65. didInsertElement: function () {
  66. this._super();
  67. this.fitHeight();
  68. },
  69. exitWizard: function () {
  70. var kerberosProgressPageController = App.router.get('kerberosProgressPageController');
  71. var controller = App.router.get('kerberosWizardController');
  72. var exitPath = controller.getDBProperty('onClosePath') || 'adminKerberos.index';
  73. controller.clearTasksData();
  74. controller.discardChanges().then(function() {
  75. if (App.get('testMode')) {
  76. App.get('router').transitionTo('adminKerberos.index');
  77. Em.run.next(function() {
  78. location.reload();
  79. });
  80. }
  81. controller.resetOnClose(controller, exitPath);
  82. });
  83. }
  84. });
  85. kerberosWizardController.set('popup', popup);
  86. var currentClusterStatus = App.clusterStatus.get('value');
  87. if (currentClusterStatus) {
  88. if (App.get('testMode')) {
  89. kerberosWizardController.setCurrentStep(App.db.data.KerberosWizard.currentStep);
  90. } else {
  91. switch (currentClusterStatus.clusterState) {
  92. case 'KERBEROS_DEPLOY' :
  93. kerberosWizardController.setCurrentStep(currentClusterStatus.localdb.KerberosWizard.currentStep);
  94. break;
  95. default:
  96. var currStep = App.get('router.kerberosWizardController.currentStep');
  97. kerberosWizardController.setCurrentStep(currStep);
  98. break;
  99. }
  100. }
  101. }
  102. Em.run.next(function(){
  103. App.router.get('wizardWatcherController').setUser(kerberosWizardController.get('name'));
  104. router.transitionTo('step' + kerberosWizardController.get('currentStep'));
  105. });
  106. });
  107. },
  108. step1: Em.Route.extend({
  109. route: '/step1',
  110. connectOutlets: function (router) {
  111. var controller = router.get('kerberosWizardController');
  112. controller.dataLoading().done(function () {
  113. router.get('kerberosWizardController').setCurrentStep('1');
  114. controller.loadAllPriorSteps().done(function() {
  115. controller.connectOutlet('kerberosWizardStep1', controller.get('content'));
  116. });
  117. });
  118. },
  119. unroutePath: function () {
  120. return false;
  121. },
  122. next: function (router) {
  123. var kerberosWizardController = router.get('kerberosWizardController');
  124. var kerberosStep1controller = router.get('kerberosWizardStep1Controller');
  125. kerberosWizardController.saveKerberosOption(kerberosStep1controller);
  126. kerberosWizardController.clearServiceConfigProperties().always(function() {
  127. router.transitionTo('step2');
  128. });
  129. }
  130. }),
  131. step2: Em.Route.extend({
  132. route: '/step2',
  133. connectOutlets: function (router) {
  134. var controller = router.get('kerberosWizardController');
  135. controller.dataLoading().done(function () {
  136. router.get('kerberosWizardController').setCurrentStep('2');
  137. controller.loadAllPriorSteps().done(function() {
  138. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  139. kerberosWizardStep2Controller.set('wizardController', controller);
  140. controller.connectOutlet('kerberosWizardStep2', controller.get('content'));
  141. });
  142. });
  143. },
  144. unroutePath: function () {
  145. return false;
  146. },
  147. back: function(router) {
  148. var controller = router.get('kerberosWizardStep2Controller');
  149. var kerberosWizardController = router.get('kerberosWizardController');
  150. if (!controller.get('isBackBtnDisabled')) {
  151. kerberosWizardController.overrideVisibility(controller.get('configs'), true, []);
  152. router.transitionTo('step1');
  153. }
  154. },
  155. next: function (router) {
  156. var kerberosWizardController = router.get('kerberosWizardController');
  157. var kerberosWizardStep2Controller = router.get('kerberosWizardStep2Controller');
  158. if (kerberosWizardController.get('skipClientInstall')) {
  159. kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'manage_identities').set('value', 'false');
  160. kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'install_packages').set('value', 'false');
  161. kerberosWizardStep2Controller.get('stepConfigs')[0].get('configs').findProperty('name', 'manage_krb5_conf').set('value', 'false');
  162. }
  163. kerberosWizardController.saveServiceConfigProperties(kerberosWizardStep2Controller).always(function() {
  164. kerberosWizardController.clearTasksData();
  165. if (kerberosWizardController.get('skipClientInstall')) {
  166. kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
  167. router.transitionTo('step4');
  168. } else {
  169. router.transitionTo('step3');
  170. }
  171. });
  172. }
  173. }),
  174. step3: Em.Route.extend({
  175. route: '/step3',
  176. connectOutlets: function (router) {
  177. var controller = router.get('kerberosWizardController');
  178. controller.dataLoading().done(function () {
  179. router.get('kerberosWizardController').setCurrentStep('3');
  180. controller.loadAllPriorSteps().done(function() {
  181. controller.connectOutlet('kerberosWizardStep3', controller.get('content'));
  182. });
  183. });
  184. },
  185. unroutePath: function () {
  186. return false;
  187. },
  188. back: Em.Router.transitionTo('step2'),
  189. next: function (router) {
  190. var kerberosWizardController = router.get('kerberosWizardController');
  191. kerberosWizardController.setDBProperty('kerberosDescriptorConfigs', null);
  192. kerberosWizardController.clearCachedStepConfigValues(router.get('kerberosWizardStep4Controller'));
  193. router.transitionTo('step4');
  194. }
  195. }),
  196. step4: Em.Route.extend({
  197. route: '/step4',
  198. connectOutlets: function (router) {
  199. var controller = router.get('kerberosWizardController');
  200. var step4Controller = router.get('kerberosWizardStep4Controller');
  201. controller.setCurrentStep(4);
  202. controller.dataLoading().done(function () {
  203. router.get('kerberosWizardController').setCurrentStep('4');
  204. controller.loadAllPriorSteps().done(function() {
  205. controller.setLowerStepsDisable(4);
  206. step4Controller.set('wizardController', controller);
  207. controller.connectOutlet('kerberosWizardStep4', controller.get('content'));
  208. });
  209. });
  210. },
  211. unroutePath: function () {
  212. return false;
  213. },
  214. back: function (router) {
  215. if (router.get('kerberosWizardController.skipClientInstall')) {
  216. router.transitionTo('step2');
  217. } else {
  218. router.transitionTo('step3');
  219. }
  220. },
  221. next: function (router) {
  222. var kerberosWizardController = router.get('kerberosWizardController');
  223. var step5Controller = router.get('kerberosWizardStep5Controller');
  224. var kerberosDescriptor = kerberosWizardController.get('kerberosDescriptorConfigs');
  225. kerberosWizardController.cacheStepConfigValues(router.get('kerberosWizardStep4Controller'));
  226. step5Controller.postKerberosDescriptor(kerberosDescriptor).always(function (data, result) {
  227. if (result === 'error' && data.status === 409) {
  228. step5Controller.putKerberosDescriptor(kerberosDescriptor);
  229. } else {
  230. step5Controller.unkerberizeCluster();
  231. }
  232. });
  233. }
  234. }),
  235. step5: Em.Route.extend({
  236. route: '/step5',
  237. connectOutlets: function (router) {
  238. var controller = router.get('kerberosWizardController');
  239. controller.dataLoading().done(function () {
  240. router.get('kerberosWizardController').setCurrentStep('5');
  241. controller.setLowerStepsDisable(5);
  242. controller.loadAllPriorSteps().done(function() {
  243. controller.connectOutlet('kerberosWizardStep5', controller.get('content'));
  244. });
  245. });
  246. },
  247. unroutePath: function () {
  248. return false;
  249. },
  250. exitWizard: function (router) {
  251. var popup = router.get('kerberosWizardController.popup');
  252. popup.onClose();
  253. },
  254. downloadCSV: function (router) {
  255. var kerberosWizardStep5Controller = router.get('kerberosWizardStep5Controller');
  256. kerberosWizardStep5Controller.getCSVData();
  257. },
  258. back: Em.Router.transitionTo('step4'),
  259. next: function (router) {
  260. var kerberosWizardController = router.get('kerberosWizardController');
  261. kerberosWizardController.setDBProperties({
  262. tasksStatuses: null,
  263. tasksRequestIds: null
  264. });
  265. router.transitionTo('step6');
  266. }
  267. }),
  268. step6: Em.Route.extend({
  269. route: '/step6',
  270. connectOutlets: function (router) {
  271. var controller = router.get('kerberosWizardController');
  272. controller.dataLoading().done(function () {
  273. router.get('kerberosWizardController').setCurrentStep('6');
  274. controller.setLowerStepsDisable(6);
  275. controller.loadAllPriorSteps().done(function() {
  276. controller.connectOutlet('kerberosWizardStep6', controller.get('content'));
  277. });
  278. });
  279. },
  280. unroutePath: function () {
  281. return false;
  282. },
  283. back: Em.Router.transitionTo('step4'),
  284. next: function (router) {
  285. var kerberosWizardController = router.get('kerberosWizardController');
  286. kerberosWizardController.setDBProperties({
  287. tasksStatuses: null,
  288. tasksRequestIds: null
  289. });
  290. router.transitionTo('step7');
  291. }
  292. }),
  293. step7: Em.Route.extend({
  294. route: '/step7',
  295. connectOutlets: function (router) {
  296. var controller = router.get('kerberosWizardController');
  297. var step7Controller = router.get('kerberosWizardStep7Controller');
  298. controller.dataLoading().done(function () {
  299. router.get('kerberosWizardController').setCurrentStep('7');
  300. controller.setLowerStepsDisable(7);
  301. controller.loadAllPriorSteps().done(function() {
  302. step7Controller.setRequest();
  303. controller.connectOutlet('kerberosWizardStep7', controller.get('content'));
  304. });
  305. });
  306. },
  307. unroutePath: function () {
  308. return false;
  309. },
  310. back: Em.Router.transitionTo('step4'),
  311. next: function (router) {
  312. router.transitionTo('step8');
  313. }
  314. }),
  315. step8: Em.Route.extend({
  316. route: '/step8',
  317. connectOutlets: function (router) {
  318. var controller = router.get('kerberosWizardController');
  319. controller.dataLoading().done(function () {
  320. router.get('kerberosWizardController').setCurrentStep('8');
  321. controller.setLowerStepsDisable(8);
  322. controller.loadAllPriorSteps().done(function() {
  323. controller.connectOutlet('kerberosWizardStep8', controller.get('content'));
  324. });
  325. });
  326. },
  327. unroutePath: function () {
  328. return false;
  329. },
  330. back: Em.Router.transitionTo('step7'),
  331. next: function (router) {
  332. var controller = router.get('kerberosWizardController');
  333. controller.resetOnClose(controller, 'adminKerberos.index');
  334. }
  335. })
  336. });