targetClusterController.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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. App.MainMirroringTargetClusterController = Ember.Controller.extend({
  19. name: 'mainMirroringTargetClusterController',
  20. model: Ember.Object.create({
  21. targetCluster: null,
  22. originalRecord: null,
  23. isPopupForEdit: false, // set the default to add scenario
  24. isNameNodeWebUrlError: function (key, value) {
  25. if (value) {
  26. return value;
  27. }
  28. var controller = App.router.get('mainMirroringTargetClusterController');
  29. var isNameNodeWebUrlError = controller.checkNameNodeWebUrlErrors();
  30. return isNameNodeWebUrlError;
  31. }.property('targetCluster.nameNodeWebUrl', 'model.targetCluster.nameNodeWebUrl'),
  32. isNameNodeRpcUrlError: function (key, value) {
  33. if (value) {
  34. return value;
  35. }
  36. var controller = App.router.get('mainMirroringTargetClusterController');
  37. var isNameNodeRpcUrlError = controller.checkNameNodeRpcUrlErrors();
  38. return isNameNodeRpcUrlError;
  39. }.property('targetCluster.nameNodeRpcUrl', 'model.targetCluster.nameNodeRpcUrl'),
  40. isOozieServerUrlError: function (key, value) {
  41. if (value) {
  42. return value;
  43. }
  44. var controller = App.router.get('mainMirroringTargetClusterController');
  45. var isOozieServerUrlError = controller.checkOozieServerUrlErrors();
  46. return isOozieServerUrlError;
  47. }.property('targetCluster.oozieServerUrl', 'model.targetCluster.oozieServerUrl'),
  48. isClusterNameError: function (key, value) {
  49. if (value) {
  50. return value;
  51. }
  52. var controller = App.router.get('mainMirroringTargetClusterController');
  53. var isClusterNameError = controller.checkClusterNameErrors();
  54. return isClusterNameError;
  55. }.property('targetCluster.clusterName', 'model.targetCluster.clusterName'),
  56. nameNodeWebUrlErrorMessage: null,
  57. nameNodeRpcUrlErrorMessage: null,
  58. oozieServerUrlErrorMessage: null,
  59. clusterNameErrorMessage: null
  60. }),
  61. isSubmitted1: null,
  62. isSubmitted2: null,
  63. validate1: function () {
  64. var isNameNodeWebUrlError = this.checkNameNodeWebUrlErrors();
  65. var isNameNodeRpcUrlError = this.checkNameNodeRpcUrlErrors();
  66. var isOozieServerUrlError = this.checkOozieServerUrlErrors();
  67. if (isNameNodeWebUrlError || isNameNodeRpcUrlError || isOozieServerUrlError) {
  68. return false;
  69. }
  70. return true;
  71. },
  72. validate2: function () {
  73. var isClusterNameError = this.checkClusterNameErrors();
  74. if (isClusterNameError) {
  75. return false;
  76. }
  77. return true;
  78. },
  79. checkNameNodeWebUrlErrors: function () {
  80. if (!this.get('isSubmitted1')){
  81. this.set('model.nameNodeWebUrlErrorMessage', "");
  82. return false;
  83. }
  84. var nameNodeWebUrl = this.get('model.targetCluster.nameNodeWebUrl');
  85. if (!nameNodeWebUrl || nameNodeWebUrl.trim() === "") {
  86. this.set('model.isNameNodeWebUrlError', true);
  87. this.set('model.nameNodeWebUrlErrorMessage', Em.I18n.t('mirroring.required.error'));
  88. return true;
  89. }
  90. else {
  91. this.set('model.nameNodeWebUrlErrorMessage', "");
  92. return false;
  93. }
  94. },
  95. checkNameNodeRpcUrlErrors: function () {
  96. if (!this.get('isSubmitted1')){
  97. this.set('model.nameNodeRpcUrlErrorMessage', "");
  98. return false;
  99. }
  100. var nameNodeRpcUrl = this.get('model.targetCluster.nameNodeRpcUrl');
  101. if (!nameNodeRpcUrl || nameNodeRpcUrl.trim() === "") {
  102. this.set('model.isNameNodeRpcUrlError', true);
  103. this.set('model.nameNodeRpcUrlErrorMessage', Em.I18n.t('mirroring.required.error'));
  104. return true;
  105. }
  106. else {
  107. this.set('model.nameNodeRpcUrlErrorMessage', "");
  108. return false;
  109. }
  110. },
  111. checkOozieServerUrlErrors: function () {
  112. if (!this.get('isSubmitted1')){
  113. this.set('model.oozieServerUrlErrorMessage', "");
  114. return false;
  115. }
  116. var oozieServerUrl = this.get('model.targetCluster.oozieServerUrl');
  117. if (!oozieServerUrl || oozieServerUrl.trim() === "") {
  118. this.set('model.isOozieServerUrlError', true);
  119. this.set('model.oozieServerUrlErrorMessage', Em.I18n.t('mirroring.required.error'));
  120. return true;
  121. }
  122. else {
  123. this.set('model.oozieServerUrlErrorMessage', "");
  124. return false;
  125. }
  126. },
  127. checkClusterNameErrors: function () {
  128. if (!this.get('isSubmitted1')){
  129. this.set('model.clusterNameErrorMessage', "");
  130. return false;
  131. }
  132. var clusterName = this.get('model.targetCluster.clusterName');
  133. if (!clusterName || clusterName.trim() === "") {
  134. this.set('model.isClusterNameError', true);
  135. this.set('model.clusterNameErrorMessage', Em.I18n.t('mirroring.required.error'));
  136. return true;
  137. }
  138. else {
  139. this.set('model.clusterNameErrorMessage', "");
  140. return false;
  141. }
  142. },
  143. setOriginalRecord: function (targetClusterRecord) {
  144. this.set('model.originalRecord', targetClusterRecord);
  145. },
  146. setTargetCluster: function (targetClusterRecord) {
  147. var targetCluster = Ember.Object.create({
  148. id: targetClusterRecord.get('id'),
  149. clusterName: targetClusterRecord.get('clusterName'),
  150. nameNodeWebUrl: targetClusterRecord.get('nameNodeWebUrl'),
  151. nameNodeRpcUrl: targetClusterRecord.get('nameNodeRpcUrl'),
  152. oozieServerUrl: targetClusterRecord.get('oozieServerUrl')
  153. });
  154. this.set('model.targetCluster', targetCluster);
  155. },
  156. createTargetCluster: function () {
  157. var targetCluster = Ember.Object.create({
  158. clusterName: null,
  159. nameNodeWebUrl: null,
  160. nameNodeRpcUrl: null,
  161. oozieServerUrl: null
  162. });
  163. this.set('model.targetCluster', targetCluster);
  164. return targetCluster;
  165. /* For future (but on record objects , not on pojos):
  166. targetCluster.on('didUpdate', function() {
  167. console.log("------Updated!");
  168. });
  169. targetCluster.on('didDelete', function() {
  170. console.log("------Deleted!");
  171. });
  172. targetCluster.on('didCreate', function() {
  173. console.log("------Created!");
  174. });
  175. */
  176. },
  177. getTargetCluster: function () {
  178. return this.get('content.targetCluster');
  179. },
  180. popup: null,
  181. /**
  182. * "Delete" button handler.
  183. * A DataSet
  184. */
  185. deleteTargetCluster: function () {
  186. var self = this;
  187. App.showConfirmationPopup(function () {
  188. var originalRecord = self.get('model.originalRecord');
  189. originalRecord.deleteRecord();
  190. originalRecord.get("transaction").commit();
  191. self.get('popup').hide();
  192. App.router.transitionTo('main.mirroring.index');
  193. });
  194. }
  195. });