exception_util.hpp 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /*##############################################################################
  2. Copyright (C) 2011 HPCC Systems.
  3. All rights reserved. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU Affero General Public License as
  5. published by the Free Software Foundation, either version 3 of the
  6. License, or (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU Affero General Public License for more details.
  11. You should have received a copy of the GNU Affero General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. ############################################################################## */
  14. #ifndef _ECLWATCH_EXCEPTIONS_HPP__
  15. #define _ECLWATCH_EXCEPTIONS_HPP__
  16. #include "errorlist.h"
  17. #include "jlog.hpp"
  18. #define ERRORMSG_INTERNAL "An internal system error occured. The error information has been saved into a system log file."
  19. #define ECLWATCH_INTERNAL_ERROR ECLWATCH_ERROR_START
  20. #define ECLWATCH_ADMIN_ACCESS_DENIED ECLWATCH_ERROR_START+1
  21. #define ECLWATCH_SUPER_USER_ACCESS_DENIED ECLWATCH_ERROR_START+2
  22. #define ECLWATCH_SMC_ACCESS_DENIED ECLWATCH_ERROR_START+3
  23. #define ECLWATCH_THOR_QUEUE_ACCESS_DENIED ECLWATCH_ERROR_START+4
  24. #define ECLWATCH_EXECUTION_ACCESS_DENIED ECLWATCH_ERROR_START+5
  25. #define ECLWATCH_MACHINE_INFO_ACCESS_DENIED ECLWATCH_ERROR_START+6
  26. #define ECLWATCH_METRICS_ACCESS_DENIED ECLWATCH_ERROR_START+7
  27. #define ECLWATCH_TOPOLOGY_ACCESS_DENIED ECLWATCH_ERROR_START+8
  28. #define ECLWATCH_ROXIE_QUERY_ACCESS_DENIED ECLWATCH_ERROR_START+9
  29. #define ECLWATCH_ECL_WU_ACCESS_DENIED ECLWATCH_ERROR_START+10
  30. #define ECLWATCH_DFU_ACCESS_DENIED ECLWATCH_ERROR_START+11
  31. #define ECLWATCH_DFU_XREF_ACCESS_DENIED ECLWATCH_ERROR_START+12
  32. #define ECLWATCH_DFU_WU_ACCESS_DENIED ECLWATCH_ERROR_START+13
  33. #define ECLWATCH_DFU_EX_ACCESS_DENIED ECLWATCH_ERROR_START+14
  34. #define ECLWATCH_FILE_SPRAY_ACCESS_DENIED ECLWATCH_ERROR_START+15
  35. #define ECLWATCH_FILE_DESPRAY_ACCESS_DENIED ECLWATCH_ERROR_START+16
  36. #define ECLWATCH_INVALID_SEC_MANAGER ECLWATCH_ERROR_START+30
  37. #define ECLWATCH_INVALID_ACCOUNT_NAME ECLWATCH_ERROR_START+31
  38. #define ECLWATCH_INVALID_RESOURCE_NAME ECLWATCH_ERROR_START+32
  39. #define ECLWATCH_INVALID_PERMISSION_NAME ECLWATCH_ERROR_START+33
  40. #define ECLWATCH_CANNOT_CHANGE_PASSWORD ECLWATCH_ERROR_START+34
  41. #define ECLWATCH_INVALID_FILE_FOLDER ECLWATCH_ERROR_START+35
  42. #define ECLWATCH_INVALID_FILE_TYPE ECLWATCH_ERROR_START+36
  43. #define ECLWATCH_INVALID_FILE_NAME ECLWATCH_ERROR_START+37
  44. #define ECLWATCH_FILE_NOT_EXIST ECLWATCH_ERROR_START+38
  45. #define ECLWATCH_CANNOT_OPEN_FILE ECLWATCH_ERROR_START+39
  46. #define ECLWATCH_CANNOT_READ_FILE ECLWATCH_ERROR_START+40
  47. #define ECLWATCH_NOT_SUPERFILE ECLWATCH_ERROR_START+41
  48. #define ECLWATCH_FILE_ALREADY_EXISTS ECLWATCH_ERROR_START+42
  49. #define ECLWATCH_OLD_CLIENT_VERSION ECLWATCH_ERROR_START+43
  50. #define ECLWATCH_CANNOT_CONNECT_DALI ECLWATCH_ERROR_START+44
  51. #define ECLWATCH_CANNOT_GET_ENV_INFO ECLWATCH_ERROR_START+45
  52. #define ECLWATCH_CLUSTER_NOT_IN_ENV_INFO ECLWATCH_ERROR_START+46
  53. #define ECLWATCH_COMPONENT_NOT_IN_ENV_INFO ECLWATCH_ERROR_START+47
  54. #define ECLWATCH_INVALID_CLUSTER_INFO ECLWATCH_ERROR_START+48
  55. #define ECLWATCH_INVALID_CLUSTER_NAME ECLWATCH_ERROR_START+49
  56. #define ECLWATCH_CANNOT_RESOLVE_CLUSTER_NAME ECLWATCH_ERROR_START+50
  57. #define ECLWATCH_MISSING_PARAMS ECLWATCH_ERROR_START+51
  58. #define ECLWATCH_INVALID_INPUT ECLWATCH_ERROR_START+52
  59. #define ECLWATCH_INVALID_IP_OR_COMPONENT ECLWATCH_ERROR_START+53
  60. #define ECLWATCH_INVALID_COMPONENT_TYPE ECLWATCH_ERROR_START+54
  61. #define ECLWATCH_INVALID_COMPONENT_INFO ECLWATCH_ERROR_START+55
  62. #define ECLWATCH_INVALID_COMPONENT_OR_FILE_TYPE ECLWATCH_ERROR_START+56
  63. #define ECLWATCH_INVALID_IP ECLWATCH_ERROR_START+57
  64. #define ECLWATCH_INVALID_IP_RANGE ECLWATCH_ERROR_START+58
  65. #define ECLWATCH_INVALID_PROCESS_FILTER ECLWATCH_ERROR_START+59
  66. #define ECLWATCH_INVALID_ACTION ECLWATCH_ERROR_START+60
  67. #define ECLWATCH_CANNOT_GET_FILE_ITERATOR ECLWATCH_ERROR_START+61
  68. #define ECLWATCH_GRAPH_NOT_FOUND ECLWATCH_ERROR_START+62
  69. #define ECLWATCH_TOO_MANY_DATA_ROWS ECLWATCH_ERROR_START+63
  70. #define ECLWATCH_TOO_BIG_DATA_SET ECLWATCH_ERROR_START+64
  71. #define ECLWATCH_CANNOT_FIND_IXREFFILESNODE ECLWATCH_ERROR_START+65
  72. #define ECLWATCH_CANNOT_PARSE_ECL_QUERY ECLWATCH_ERROR_START+66
  73. #define ECLWATCH_CANNOT_COMPRESS_DATA ECLWATCH_ERROR_START+67
  74. #define ECLWATCH_CANNOT_CONNECT_ARCHIVE_SERVER ECLWATCH_ERROR_START+68
  75. #define ECLWATCH_ARCHIVE_SERVER_NOT_FOUND ECLWATCH_ERROR_START+69
  76. #define ECLWATCH_DROP_ZONE_NOT_FOUND ECLWATCH_ERROR_START+70
  77. #define ECLWATCH_INODE_NOT_FOUND ECLWATCH_ERROR_START+71
  78. #define ECLWATCH_PROGRESS_INFO_NOT_FOUND ECLWATCH_ERROR_START+72
  79. #define ECLWATCH_ACCESS_TO_FILE_DENIED ECLWATCH_ERROR_START+73
  80. #define ECLWATCH_INVALID_DIRECTORY ECLWATCH_ERROR_START+74
  81. #define ECLWATCH_CANNOT_ACCESS_EXCEPTION_ENGINE ECLWATCH_ERROR_START+75
  82. #define ECLWATCH_CANNOT_ACCESS_WU_ENGINE ECLWATCH_ERROR_START+76
  83. #define ECLWATCH_SINGLE_COLON_NOT_ALLOWED ECLWATCH_ERROR_START+77
  84. #define ECLWATCH_ID_MUST_BE_ALL_DIGITS ECLWATCH_ERROR_START+78
  85. #define ECLWATCH_CANNOT_CREATE_WORKUNIT ECLWATCH_ERROR_START+79
  86. #define ECLWATCH_CANNOT_GET_WORKUNIT ECLWATCH_ERROR_START+80
  87. #define ECLWATCH_CANNOT_OPEN_WORKUNIT ECLWATCH_ERROR_START+81
  88. #define ECLWATCH_CANNOT_UPDATE_WORKUNIT ECLWATCH_ERROR_START+82
  89. #define ECLWATCH_CANNOT_SUBMIT_WORKUNIT ECLWATCH_ERROR_START+83
  90. #define ECLWATCH_CANNOT_SCHEDULE_WORKUNIT ECLWATCH_ERROR_START+84
  91. #define ECLWATCH_CANNOT_DELETE_WORKUNIT ECLWATCH_ERROR_START+85
  92. #define ECLWATCH_QUERY_NOT_FOUND_FOR_WU ECLWATCH_ERROR_START+86
  93. #define ECLWATCH_CANNOT_CREATE_WUACTIONRESULT ECLWATCH_ERROR_START+87
  94. #define ECLWATCH_CANNOT_GET_WU_RESULT ECLWATCH_ERROR_START+88
  95. #define ECLWATCH_CANNOT_CREATE_ARCHIVE_CMD ECLWATCH_ERROR_START+89
  96. #define ECLWATCH_ECLAGENT_LOG_NOT_FOUND ECLWATCH_ERROR_START+90
  97. #define ECLWATCH_MISSING_BANNER_CONTENT ECLWATCH_ERROR_START+91
  98. #define ECLWATCH_MISSING_CHAT_URL ECLWATCH_ERROR_START+92
  99. #define ECLWATCH_PLINK_NOT_INSTALLED ECLWATCH_ERROR_START+93
  100. #define ECLWATCH_PSEXEC_NOT_INSTALLED ECLWATCH_ERROR_START+94
  101. #define ECLWATCH_NO_WUID_SPECIFIED ECLWATCH_ERROR_START+95
  102. #define ECLWATCH_QUERYSET_NOT_FOUND ECLWATCH_ERROR_START+96
  103. #define ECLWATCH_QUERYID_NOT_FOUND ECLWATCH_ERROR_START+97
  104. #define ECLWATCH_ALIAS_NOT_FOUND ECLWATCH_ERROR_START+98
  105. inline void FORWARDEXCEPTION(IEspContext &context, IException *e, unsigned codeNew)
  106. {
  107. if (!e)
  108. return;
  109. time_t tNow;
  110. struct tm timeStruct;
  111. char timeString[32];
  112. StringBuffer eMsg;
  113. int err = e->errorCode();
  114. e->errorMessage(eMsg);
  115. e->Release();
  116. context.setException(err);
  117. //set time stamp in the result for this machine
  118. time(&tNow);
  119. gmtime_r(&tNow, &timeStruct);
  120. strftime(timeString, 32, "%Y-%m-%d %H:%M:%S GMT", &timeStruct);
  121. throw MakeStringException(err, "%s: %s", timeString, eMsg.str());
  122. return;
  123. }
  124. #endif //_ECLWATCH_EXCEPTIONS_HPP__