WsDfu.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. /*##############################################################################
  2. # Copyright (C) 2011 HPCC Systems.
  3. #
  4. # All rights reserved. This program is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU Affero General Public License as
  6. # published by the Free Software Foundation, either version 3 of the
  7. # License, or (at your option) any later version.
  8. #
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. # GNU Affero General Public License for more details.
  13. #
  14. # You should have received a copy of the GNU Affero General Public License
  15. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. ############################################################################## */
  17. define([
  18. "dojo/_base/declare",
  19. "dojo/_base/lang",
  20. "dojo/_base/Deferred",
  21. "dojo/_base/array",
  22. "dojo/store/util/QueryResults",
  23. "dojox/xml/parser",
  24. "hpcc/ESPBase",
  25. "hpcc/ESPRequest"
  26. ], function (declare, lang, Deferred, arrayUtil, QueryResults,
  27. parser,
  28. ESPBase, ESPRequest) {
  29. return {
  30. DFUArrayAction: function (logicalFiles, actionType, callback) {
  31. arrayUtil.forEach(logicalFiles, function (item, idx) {
  32. item.qualifiedName = item.Name + "@" + item.ClusterName;
  33. });
  34. var request = {
  35. LogicalFiles: logicalFiles,
  36. Type: actionType
  37. };
  38. ESPRequest.flattenArray(request, "LogicalFiles", "qualifiedName");
  39. return ESPRequest.send("WsDfu", "DFUArrayAction", {
  40. request: request,
  41. load: function (response) {
  42. if (lang.exists("DFUArrayActionResponse.DFUArrayActionResult", response)) {
  43. dojo.publish("hpcc/brToaster", {
  44. message: response.DFUArrayActionResponse.DFUArrayActionResult,
  45. type: "error",
  46. duration: -1
  47. });
  48. }
  49. if (callback && callback.load) {
  50. callback.load(response);
  51. }
  52. },
  53. error: function (err) {
  54. if (callback && callback.error) {
  55. callback.error(err);
  56. }
  57. }
  58. });
  59. },
  60. SuperfileAction: function (action, superfile, subfiles, removeSuperfile, callback) {
  61. var request = {
  62. action: action,
  63. superfile: superfile,
  64. subfiles: subfiles,
  65. removeSuperfile: removeSuperfile
  66. };
  67. ESPRequest.flattenArray(request, "subfiles", "Name");
  68. return ESPRequest.send("WsDfu", "SuperfileAction", {
  69. request: request,
  70. load: function (response) {
  71. if (lang.exists("SuperfileActionResponse", response)) {
  72. dojo.publish("hpcc/brToaster", {
  73. message: response.AddtoSuperfileResponse.Subfiles,
  74. type: "error",
  75. duration: -1
  76. });
  77. }
  78. if (callback && callback.load) {
  79. callback.load(response);
  80. }
  81. },
  82. error: function (err) {
  83. if (callback && callback.error) {
  84. callback.error(err);
  85. }
  86. }
  87. });
  88. },
  89. AddtoSuperfile: function (logicalFiles, superfile, existingFile, callback) {
  90. var request = {
  91. names: logicalFiles,
  92. Superfile: superfile,
  93. ExistingFile: existingFile ? 1 : 0
  94. };
  95. ESPRequest.flattenArray(request, "names", "Name");
  96. return ESPRequest.send("WsDfu", "AddtoSuperfile", {
  97. request: request,
  98. load: function (response) {
  99. if (lang.exists("AddtoSuperfileResponse.Subfiles", response)) {
  100. dojo.publish("hpcc/brToaster", {
  101. message: response.AddtoSuperfileResponse.Subfiles,
  102. type: "error",
  103. duration: -1
  104. });
  105. }
  106. if (callback && callback.load) {
  107. callback.load(response);
  108. }
  109. },
  110. error: function (err) {
  111. if (callback && callback.error) {
  112. callback.error(err);
  113. }
  114. }
  115. });
  116. },
  117. DFUQuery: function (params) {
  118. return ESPRequest.send("WsDfu", "DFUQuery", params);
  119. },
  120. DFUInfo: function (params) {
  121. return ESPRequest.send("WsDfu", "DFUInfo", params);
  122. },
  123. DFUDefFile: function (params) {
  124. lang.mixin(params, {
  125. handleAs: "text"
  126. });
  127. return ESPRequest.send("WsDfu", "DFUDefFile", params).then(function (response) {
  128. var domXml = parser.parse(response);
  129. var espBase = new ESPBase();
  130. var exceptions = espBase.getValues(domXml, "Exception", ["Exception"]);
  131. if (exceptions.length) {
  132. response = "";
  133. arrayUtil.forEach(exceptions, function (item, idx) {
  134. response += item.Message + "\n";
  135. });
  136. }
  137. return response;
  138. });
  139. }
  140. };
  141. });