rm_high_availability_routes.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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: '/highAvailability/ResourceManager/enable',
  21. enter: function (router, transition) {
  22. var rMHighAvailabilityWizardController = router.get('rMHighAvailabilityWizardController');
  23. rMHighAvailabilityWizardController.dataLoading().done(function () {
  24. //Set YARN as current service
  25. App.router.set('mainServiceItemController.content', App.Service.find().findProperty('serviceName', 'YARN'));
  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.rm_highAvailability.wizard.header'),
  30. bodyClass: App.RMHighAvailabilityWizardView.extend({
  31. controller: rMHighAvailabilityWizardController
  32. }),
  33. primary: Em.I18n.t('form.cancel'),
  34. showFooter: false,
  35. secondary: null,
  36. onClose: function () {
  37. var rMHighAvailabilityWizardController = router.get('rMHighAvailabilityWizardController'),
  38. currStep = rMHighAvailabilityWizardController.get('currentStep');
  39. if (parseInt(currStep) === 4) {
  40. App.showConfirmationPopup(function () {
  41. rMHighAvailabilityWizardController.resetOnClose(rMHighAvailabilityWizardController, 'main.services.index');
  42. }, Em.I18n.t('admin.rm_highAvailability.closePopup'));
  43. } else {
  44. rMHighAvailabilityWizardController.resetOnClose(rMHighAvailabilityWizardController, 'main.services.index');
  45. }
  46. },
  47. didInsertElement: function () {
  48. this._super();
  49. this.fitHeight();
  50. }
  51. });
  52. rMHighAvailabilityWizardController.set('popup', popup);
  53. var currentClusterStatus = App.clusterStatus.get('value');
  54. if (currentClusterStatus) {
  55. switch (currentClusterStatus.clusterState) {
  56. case 'RM_HIGH_AVAILABILITY_DEPLOY' :
  57. rMHighAvailabilityWizardController.setCurrentStep(currentClusterStatus.localdb.RMHighAvailabilityWizard.currentStep);
  58. break;
  59. default:
  60. var currStep = App.router.get('rMHighAvailabilityWizardController.currentStep');
  61. rMHighAvailabilityWizardController.setCurrentStep(currStep);
  62. break;
  63. }
  64. }
  65. Em.run.next(function () {
  66. App.router.get('wizardWatcherController').setUser(rMHighAvailabilityWizardController.get('name'));
  67. router.transitionTo('step' + rMHighAvailabilityWizardController.get('currentStep'));
  68. });
  69. });
  70. },
  71. step1: Em.Route.extend({
  72. route: '/step1',
  73. connectOutlets: function (router) {
  74. var controller = router.get('rMHighAvailabilityWizardController');
  75. controller.dataLoading().done(function () {
  76. controller.setCurrentStep('1');
  77. controller.connectOutlet('rMHighAvailabilityWizardStep1', controller.get('content'));
  78. })
  79. },
  80. unroutePath: function () {
  81. return false;
  82. },
  83. next: function (router) {
  84. var controller = router.get('rMHighAvailabilityWizardController');
  85. controller.setDBProperty('rmHosts', undefined);
  86. controller.clearMasterComponentHosts();
  87. router.transitionTo('step2');
  88. }
  89. }),
  90. step2: Em.Route.extend({
  91. route: '/step2',
  92. connectOutlets: function (router) {
  93. var controller = router.get('rMHighAvailabilityWizardController');
  94. controller.dataLoading().done(function () {
  95. controller.setCurrentStep('2');
  96. controller.loadAllPriorSteps();
  97. controller.connectOutlet('rMHighAvailabilityWizardStep2', controller.get('content'));
  98. })
  99. },
  100. unroutePath: function () {
  101. return false;
  102. },
  103. next: function (router) {
  104. var wizardController = router.get('rMHighAvailabilityWizardController');
  105. var stepController = router.get('rMHighAvailabilityWizardStep2Controller');
  106. var currentRM = stepController.get('servicesMasters').filterProperty('component_name', 'RESOURCEMANAGER').findProperty('isInstalled', true);
  107. var additionalRM = stepController.get('servicesMasters').filterProperty('component_name', 'RESOURCEMANAGER').findProperty('isInstalled', false);
  108. var rmHost = {
  109. currentRM: currentRM.get('selectedHost'),
  110. additionalRM: additionalRM.get('selectedHost')
  111. };
  112. wizardController.saveRmHosts(rmHost);
  113. wizardController.saveMasterComponentHosts(stepController);
  114. router.transitionTo('step3');
  115. },
  116. back: function (router) {
  117. router.transitionTo('step1');
  118. }
  119. }),
  120. step3: Em.Route.extend({
  121. route: '/step3',
  122. connectOutlets: function (router) {
  123. var controller = router.get('rMHighAvailabilityWizardController');
  124. controller.dataLoading().done(function () {
  125. controller.setCurrentStep('3');
  126. controller.loadAllPriorSteps();
  127. controller.connectOutlet('rMHighAvailabilityWizardStep3', controller.get('content'));
  128. })
  129. },
  130. unroutePath: function () {
  131. return false;
  132. },
  133. next: function (router) {
  134. var wizardController = router.get('rMHighAvailabilityWizardController');
  135. var stepController = router.get('rMHighAvailabilityWizardStep3Controller');
  136. var configs = stepController.get('selectedService.configs');
  137. wizardController.saveConfigs(configs);
  138. router.transitionTo('step4');
  139. },
  140. back: Em.Router.transitionTo('step2')
  141. }),
  142. step4: Em.Route.extend({
  143. route: '/step4',
  144. connectOutlets: function (router) {
  145. var controller = router.get('rMHighAvailabilityWizardController');
  146. controller.dataLoading().done(function () {
  147. controller.setCurrentStep('4');
  148. controller.setLowerStepsDisable(4);
  149. controller.loadAllPriorSteps();
  150. controller.connectOutlet('rMHighAvailabilityWizardStep4', controller.get('content'));
  151. })
  152. },
  153. unroutePath: function (router, path) {
  154. // allow user to leave route if wizard has finished
  155. if (router.get('rMHighAvailabilityWizardController').get('isFinished')) {
  156. this._super(router, path);
  157. } else {
  158. return false;
  159. }
  160. },
  161. next: function (router) {
  162. var controller = router.get('rMHighAvailabilityWizardController');
  163. controller.resetOnClose(controller, 'main.services.index');
  164. }
  165. })
  166. });