exception_util.hpp 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /*##############################################################################
  2. HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems.
  3. Licensed under the Apache License, Version 2.0 (the "License");
  4. you may not use this file except in compliance with the License.
  5. You may obtain a copy of the License at
  6. http://www.apache.org/licenses/LICENSE-2.0
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. ############################################################################## */
  13. #ifndef _ECLWATCH_EXCEPTIONS_HPP__
  14. #define _ECLWATCH_EXCEPTIONS_HPP__
  15. #include "errorlist.h"
  16. #include "jlog.hpp"
  17. #define ERRORMSG_INTERNAL "An internal system error occured. The error information has been saved into a system log file."
  18. #define ECLWATCH_INTERNAL_ERROR ECLWATCH_ERROR_START
  19. #define ECLWATCH_ADMIN_ACCESS_DENIED ECLWATCH_ERROR_START+1
  20. #define ECLWATCH_SUPER_USER_ACCESS_DENIED ECLWATCH_ERROR_START+2
  21. #define ECLWATCH_SMC_ACCESS_DENIED ECLWATCH_ERROR_START+3
  22. #define ECLWATCH_THOR_QUEUE_ACCESS_DENIED ECLWATCH_ERROR_START+4
  23. #define ECLWATCH_EXECUTION_ACCESS_DENIED ECLWATCH_ERROR_START+5
  24. #define ECLWATCH_MACHINE_INFO_ACCESS_DENIED ECLWATCH_ERROR_START+6
  25. #define ECLWATCH_METRICS_ACCESS_DENIED ECLWATCH_ERROR_START+7
  26. #define ECLWATCH_TOPOLOGY_ACCESS_DENIED ECLWATCH_ERROR_START+8
  27. #define ECLWATCH_ROXIE_QUERY_ACCESS_DENIED ECLWATCH_ERROR_START+9
  28. #define ECLWATCH_ECL_WU_ACCESS_DENIED ECLWATCH_ERROR_START+10
  29. #define ECLWATCH_DFU_ACCESS_DENIED ECLWATCH_ERROR_START+11
  30. #define ECLWATCH_DFU_XREF_ACCESS_DENIED ECLWATCH_ERROR_START+12
  31. #define ECLWATCH_DFU_WU_ACCESS_DENIED ECLWATCH_ERROR_START+13
  32. #define ECLWATCH_DFU_EX_ACCESS_DENIED ECLWATCH_ERROR_START+14
  33. #define ECLWATCH_FILE_SPRAY_ACCESS_DENIED ECLWATCH_ERROR_START+15
  34. #define ECLWATCH_FILE_DESPRAY_ACCESS_DENIED ECLWATCH_ERROR_START+16
  35. #define ECLWATCH_INVALID_SEC_MANAGER ECLWATCH_ERROR_START+30
  36. #define ECLWATCH_INVALID_ACCOUNT_NAME ECLWATCH_ERROR_START+31
  37. #define ECLWATCH_INVALID_RESOURCE_NAME ECLWATCH_ERROR_START+32
  38. #define ECLWATCH_INVALID_PERMISSION_NAME ECLWATCH_ERROR_START+33
  39. #define ECLWATCH_CANNOT_CHANGE_PASSWORD ECLWATCH_ERROR_START+34
  40. #define ECLWATCH_INVALID_FILE_FOLDER ECLWATCH_ERROR_START+35
  41. #define ECLWATCH_INVALID_FILE_TYPE ECLWATCH_ERROR_START+36
  42. #define ECLWATCH_INVALID_FILE_NAME ECLWATCH_ERROR_START+37
  43. #define ECLWATCH_FILE_NOT_EXIST ECLWATCH_ERROR_START+38
  44. #define ECLWATCH_CANNOT_OPEN_FILE ECLWATCH_ERROR_START+39
  45. #define ECLWATCH_CANNOT_READ_FILE ECLWATCH_ERROR_START+40
  46. #define ECLWATCH_NOT_SUPERFILE ECLWATCH_ERROR_START+41
  47. #define ECLWATCH_FILE_ALREADY_EXISTS ECLWATCH_ERROR_START+42
  48. #define ECLWATCH_OLD_CLIENT_VERSION ECLWATCH_ERROR_START+43
  49. #define ECLWATCH_CANNOT_CONNECT_DALI ECLWATCH_ERROR_START+44
  50. #define ECLWATCH_CANNOT_GET_ENV_INFO ECLWATCH_ERROR_START+45
  51. #define ECLWATCH_CLUSTER_NOT_IN_ENV_INFO ECLWATCH_ERROR_START+46
  52. #define ECLWATCH_COMPONENT_NOT_IN_ENV_INFO ECLWATCH_ERROR_START+47
  53. #define ECLWATCH_INVALID_CLUSTER_INFO ECLWATCH_ERROR_START+48
  54. #define ECLWATCH_INVALID_CLUSTER_NAME ECLWATCH_ERROR_START+49
  55. #define ECLWATCH_CANNOT_RESOLVE_CLUSTER_NAME ECLWATCH_ERROR_START+50
  56. #define ECLWATCH_MISSING_PARAMS ECLWATCH_ERROR_START+51
  57. #define ECLWATCH_INVALID_INPUT ECLWATCH_ERROR_START+52
  58. #define ECLWATCH_INVALID_IP_OR_COMPONENT ECLWATCH_ERROR_START+53
  59. #define ECLWATCH_INVALID_COMPONENT_TYPE ECLWATCH_ERROR_START+54
  60. #define ECLWATCH_INVALID_COMPONENT_INFO ECLWATCH_ERROR_START+55
  61. #define ECLWATCH_INVALID_COMPONENT_OR_FILE_TYPE ECLWATCH_ERROR_START+56
  62. #define ECLWATCH_INVALID_IP ECLWATCH_ERROR_START+57
  63. #define ECLWATCH_INVALID_IP_RANGE ECLWATCH_ERROR_START+58
  64. #define ECLWATCH_INVALID_PROCESS_FILTER ECLWATCH_ERROR_START+59
  65. #define ECLWATCH_INVALID_ACTION ECLWATCH_ERROR_START+60
  66. #define ECLWATCH_CANNOT_GET_FILE_ITERATOR ECLWATCH_ERROR_START+61
  67. #define ECLWATCH_GRAPH_NOT_FOUND ECLWATCH_ERROR_START+62
  68. #define ECLWATCH_TOO_MANY_DATA_ROWS ECLWATCH_ERROR_START+63
  69. #define ECLWATCH_TOO_BIG_DATA_SET ECLWATCH_ERROR_START+64
  70. #define ECLWATCH_CANNOT_FIND_IXREFFILESNODE ECLWATCH_ERROR_START+65
  71. #define ECLWATCH_CANNOT_PARSE_ECL_QUERY ECLWATCH_ERROR_START+66
  72. #define ECLWATCH_CANNOT_COMPRESS_DATA ECLWATCH_ERROR_START+67
  73. #define ECLWATCH_CANNOT_CONNECT_ARCHIVE_SERVER ECLWATCH_ERROR_START+68
  74. #define ECLWATCH_ARCHIVE_SERVER_NOT_FOUND ECLWATCH_ERROR_START+69
  75. #define ECLWATCH_DROP_ZONE_NOT_FOUND ECLWATCH_ERROR_START+70
  76. #define ECLWATCH_INODE_NOT_FOUND ECLWATCH_ERROR_START+71
  77. #define ECLWATCH_PROGRESS_INFO_NOT_FOUND ECLWATCH_ERROR_START+72
  78. #define ECLWATCH_ACCESS_TO_FILE_DENIED ECLWATCH_ERROR_START+73
  79. #define ECLWATCH_INVALID_DIRECTORY ECLWATCH_ERROR_START+74
  80. #define ECLWATCH_CANNOT_ACCESS_EXCEPTION_ENGINE ECLWATCH_ERROR_START+75
  81. #define ECLWATCH_CANNOT_ACCESS_WU_ENGINE ECLWATCH_ERROR_START+76
  82. #define ECLWATCH_SINGLE_COLON_NOT_ALLOWED ECLWATCH_ERROR_START+77
  83. #define ECLWATCH_ID_MUST_BE_ALL_DIGITS ECLWATCH_ERROR_START+78
  84. #define ECLWATCH_CANNOT_CREATE_WORKUNIT ECLWATCH_ERROR_START+79
  85. #define ECLWATCH_CANNOT_GET_WORKUNIT ECLWATCH_ERROR_START+80
  86. #define ECLWATCH_CANNOT_OPEN_WORKUNIT ECLWATCH_ERROR_START+81
  87. #define ECLWATCH_CANNOT_UPDATE_WORKUNIT ECLWATCH_ERROR_START+82
  88. #define ECLWATCH_CANNOT_SUBMIT_WORKUNIT ECLWATCH_ERROR_START+83
  89. #define ECLWATCH_CANNOT_SCHEDULE_WORKUNIT ECLWATCH_ERROR_START+84
  90. #define ECLWATCH_CANNOT_DELETE_WORKUNIT ECLWATCH_ERROR_START+85
  91. #define ECLWATCH_QUERY_NOT_FOUND_FOR_WU ECLWATCH_ERROR_START+86
  92. #define ECLWATCH_CANNOT_CREATE_WUACTIONRESULT ECLWATCH_ERROR_START+87
  93. #define ECLWATCH_CANNOT_GET_WU_RESULT ECLWATCH_ERROR_START+88
  94. #define ECLWATCH_CANNOT_CREATE_ARCHIVE_CMD ECLWATCH_ERROR_START+89
  95. #define ECLWATCH_ECLAGENT_LOG_NOT_FOUND ECLWATCH_ERROR_START+90
  96. #define ECLWATCH_MISSING_BANNER_CONTENT ECLWATCH_ERROR_START+91
  97. #define ECLWATCH_MISSING_CHAT_URL ECLWATCH_ERROR_START+92
  98. #define ECLWATCH_PLINK_NOT_INSTALLED ECLWATCH_ERROR_START+93
  99. #define ECLWATCH_PSEXEC_NOT_INSTALLED ECLWATCH_ERROR_START+94
  100. #define ECLWATCH_NO_WUID_SPECIFIED ECLWATCH_ERROR_START+95
  101. #define ECLWATCH_QUERYSET_NOT_FOUND ECLWATCH_ERROR_START+96
  102. #define ECLWATCH_QUERYID_NOT_FOUND ECLWATCH_ERROR_START+97
  103. #define ECLWATCH_ALIAS_NOT_FOUND ECLWATCH_ERROR_START+98
  104. #define ECLWATCH_QUERYSET_NOT_ON_CLUSTER ECLWATCH_ERROR_START+99
  105. #define ECLWATCH_CONTROL_QUERY_FAILED ECLWATCH_ERROR_START+100
  106. #define ECLWATCH_QUERY_SUSPENDED ECLWATCH_ERROR_START+101
  107. #define ECLWATCH_PACKAGEMAP_NOTRESOLVED ECLWATCH_ERROR_START+102
  108. #define ECLWATCH_RESOURCE_NOT_FOUND ECLWATCH_ERROR_START+103
  109. inline void FORWARDEXCEPTION(IEspContext &context, IException *e, unsigned codeNew)
  110. {
  111. if (!e)
  112. return;
  113. time_t tNow;
  114. struct tm timeStruct;
  115. char timeString[32];
  116. StringBuffer eMsg;
  117. int err = e->errorCode();
  118. e->errorMessage(eMsg);
  119. e->Release();
  120. context.setException(err);
  121. //set time stamp in the result for this machine
  122. time(&tNow);
  123. gmtime_r(&tNow, &timeStruct);
  124. strftime(timeString, 32, "%Y-%m-%d %H:%M:%S GMT", &timeStruct);
  125. throw MakeStringException(err, "%s: %s", timeString, eMsg.str());
  126. return;
  127. }
  128. #endif //_ECLWATCH_EXCEPTIONS_HPP__