ws_topology.ecm 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  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. ////////////////////////////////////////////////////////////
  15. // ===========================================================================
  16. ESPStruct TpMachine
  17. {
  18. string Name;
  19. string Netaddress;
  20. [min_ver("1.09")] string ConfigNetaddress;
  21. string Domain;
  22. string Directory;
  23. string Type;
  24. string Available;
  25. int OS;
  26. string Path;
  27. int Port;
  28. };
  29. // ===========================================================================
  30. ESPStruct TpCluster
  31. {
  32. string Type;
  33. string Name;
  34. [min_ver("1.03")] string QueueName;
  35. string Build;
  36. string Directory;
  37. string LogDirectory;
  38. string Desc;
  39. [max_ver("1.16")] string Prefix;
  40. string Path;
  41. string DataModel;
  42. int OS;
  43. [min_ver("1.15")] bool HasThorSpareProcess;
  44. [min_ver("1.12")] ESParray<ESPstruct TpMachine> TpMachines;
  45. };
  46. // ===========================================================================
  47. // ===========================================================================
  48. ESPStruct TpLogicalCluster
  49. {
  50. string Name;
  51. string Queue;
  52. [min_ver("1.14")] string LanguageVersion;
  53. [min_ver("1.11")] string Process;
  54. };
  55. // ===========================================================================
  56. // ===========================================================================
  57. ESPStruct TpGroup
  58. {
  59. string Name;
  60. string Prefix;
  61. };
  62. // ===========================================================================
  63. ESPStruct TpDali
  64. {
  65. string Name;
  66. string Description;
  67. string Build;
  68. string BackupComputer;
  69. string BackupDirectory;
  70. string Type;
  71. string Path;
  72. string LogDirectory;
  73. ESParray<ESPstruct TpMachine> TpMachines;
  74. };
  75. // ===========================================================================
  76. ESPStruct TpEclServer
  77. {
  78. string Name;
  79. string Description;
  80. string Build;
  81. string LogDirectory;
  82. string Type;
  83. string Path;
  84. ESParray<ESPstruct TpMachine> TpMachines;
  85. };
  86. // ===========================================================================
  87. ESPStruct TpEclAgent
  88. {
  89. string Name;
  90. string Description;
  91. string Build;
  92. string Type;
  93. string Path;
  94. string DaliServer;
  95. string LogDir;
  96. ESParray<ESPstruct TpMachine> TpMachines;
  97. //ESPstruct TpAgentExec AgentExec;
  98. };
  99. // ===========================================================================
  100. ESPStruct TpAgentExec
  101. {
  102. string DaliServer;
  103. string LogDir;
  104. };
  105. // ===========================================================================
  106. ESPStruct TpEclScheduler
  107. {
  108. string Name;
  109. string Description;
  110. string Build;
  111. string LogDirectory;
  112. string Type;
  113. string Path;
  114. ESParray<ESPstruct TpMachine> TpMachines;
  115. };
  116. // ===========================================================================
  117. ESPStruct TpBinding
  118. {
  119. string Name;
  120. string Service;
  121. string ServiceType;
  122. string Port;
  123. string Protocol;
  124. };
  125. // ===========================================================================
  126. ESPStruct TpEspServer
  127. {
  128. string Name;
  129. string Description;
  130. string Build;
  131. string Type;
  132. string Path;
  133. string LogDirectory;
  134. ESParray<ESPstruct TpMachine> TpMachines;
  135. ESParray<ESPstruct TpBinding> TpBindings;
  136. };
  137. // ===========================================================================
  138. ESPStruct TpDfuServer
  139. {
  140. string Name;
  141. string Description;
  142. string Build;
  143. string Queue;
  144. string Type;
  145. string Path;
  146. string LogDirectory;
  147. ESParray<ESPstruct TpMachine> TpMachines;
  148. };
  149. // ===========================================================================
  150. ESPStruct TpSashaServer
  151. {
  152. string Name;
  153. string Description;
  154. string Build;
  155. string Path;
  156. string LogDirectory;
  157. ESParray<ESPstruct TpMachine> TpMachines;
  158. };
  159. // ===========================================================================
  160. ESPStruct TpLdapServer
  161. {
  162. string Name;
  163. string Description;
  164. string Build;
  165. string Path;
  166. ESParray<ESPstruct TpMachine> TpMachines;
  167. };
  168. // ===========================================================================
  169. ESPStruct TpDropZone
  170. {
  171. string Name;
  172. string Description;
  173. string Build;
  174. string Path;
  175. ESParray<ESPstruct TpMachine> TpMachines;
  176. };
  177. // ===========================================================================
  178. ESPStruct TpMySqlServer
  179. {
  180. string Name;
  181. string Description;
  182. string Build;
  183. string Path;
  184. ESParray<ESPstruct TpMachine> TpMachines;
  185. };
  186. // ===========================================================================
  187. ESPStruct TpFTSlave
  188. {
  189. string Name;
  190. string Description;
  191. string Build;
  192. string Path;
  193. ESParray<ESPstruct TpMachine> TpMachines;
  194. };
  195. // ===========================================================================
  196. ESPStruct TpDkcSlave
  197. {
  198. string Name;
  199. string Description;
  200. string Build;
  201. string Path;
  202. ESParray<ESPstruct TpMachine> TpMachines;
  203. };
  204. // ===========================================================================
  205. ESPStruct TpGenesisServer
  206. {
  207. string Name;
  208. string Description;
  209. string Build;
  210. string Path;
  211. ESParray<ESPstruct TpMachine> TpMachines;
  212. };
  213. // ===========================================================================
  214. ESPStruct TpQueue
  215. {
  216. string Name;
  217. string WorkUnit;
  218. };
  219. // ===========================================================================
  220. ESPStruct TpServices
  221. {
  222. ESParray<ESPstruct TpDali> TpDalis;
  223. ESParray<ESPstruct TpEclServer> TpEclServers;
  224. ESParray<ESPstruct TpEclServer> TpEclCCServers;
  225. ESParray<ESPstruct TpEclAgent> TpEclAgents;
  226. [min_ver("1.16")] ESParray<ESPstruct TpEclScheduler> TpEclSchedulers;
  227. ESParray<ESPstruct TpEspServer> TpEspServers;
  228. ESParray<ESPstruct TpDfuServer> TpDfuServers;
  229. ESParray<ESPstruct TpSashaServer> TpSashaServers;
  230. ESParray<ESPstruct TpMySqlServer> TpMySqlServers;
  231. ESParray<ESPstruct TpLdapServer> TpLdapServers;
  232. ESParray<ESPstruct TpDropZone> TpDropZones;
  233. ESParray<ESPstruct TpFTSlave> TpFTSlaves;
  234. ESParray<ESPstruct TpDkcSlave> TpDkcSlaves;
  235. ESParray<ESPstruct TpGenesisServer> TpGenesisServers;
  236. };
  237. // ===========================================================================
  238. ESPStruct TpTargetCluster
  239. {
  240. string Name;
  241. string Prefix;
  242. TpQueryType Type;
  243. ESParray<ESPstruct TpCluster> TpClusters;
  244. ESParray<ESPstruct TpEclServer> TpEclCCServers;
  245. ESParray<ESPstruct TpEclAgent> TpEclAgents;
  246. [min_ver("1.16")] ESParray<ESPstruct TpEclScheduler> TpEclSchedulers;
  247. };
  248. ESPStruct TpQueryType
  249. {
  250. TPCLUSTER;
  251. TPNODE;
  252. };
  253. ESPrequest TpTargetClusterQueryRequest
  254. {
  255. TpQueryType Type;
  256. string Name;
  257. bool ShowDetails(false);
  258. };
  259. ESPresponse [exceptions_inline]TpTargetClusterQueryResponse
  260. {
  261. //bool EncapsulatedSystem;
  262. //bool EnablePreflightInfo;
  263. bool ShowDetails(false);
  264. int MemThreshold;
  265. int DiskThreshold;
  266. int CpuThreshold;
  267. string MemThresholdType;
  268. string DiskThresholdType;
  269. [min_ver("1.13")] string PreflightProcessFilter;
  270. ESParray<ESPstruct TpTargetCluster> TpTargetClusters;
  271. };
  272. ESPrequest TpClusterQueryRequest
  273. {
  274. TpQueryType Type;
  275. };
  276. ESPresponse [exceptions_inline]TpClusterQueryResponse
  277. {
  278. [min_ver("1.08")] bool EnableSNMP;
  279. ESParray<ESPstruct TpCluster> TpClusters;
  280. };
  281. ESPrequest TpLogicalClusterQueryRequest
  282. {
  283. string EclServerQueue;
  284. };
  285. ESPresponse [exceptions_inline] TpLogicalClusterQueryResponse
  286. {
  287. ESParray<ESPstruct TpLogicalCluster> TpLogicalClusters;
  288. };
  289. ESPrequest TpGroupQueryRequest
  290. {
  291. };
  292. ESPresponse [exceptions_inline] TpGroupQueryResponse
  293. {
  294. ESParray<ESPstruct TpGroup> TpGroups;
  295. };
  296. ESPrequest TpClusterInfoRequest
  297. {
  298. //Type of Node the parent is....
  299. string Name;
  300. };
  301. ESPresponse [exceptions_inline,encode(0)] TpClusterInfoResponse
  302. {
  303. string Name;
  304. string WorkUnit;
  305. [min_ver("1.10")] ESParray<ESPstruct TpQueue> TpQueues;
  306. };
  307. SCMenum TpMachineType
  308. {
  309. TPMACHINECLUSTER
  310. };
  311. ESPrequest [] TpMachineQueryRequest
  312. {
  313. //Type of Node the parent is....
  314. TpMachineType Type;
  315. string Cluster;
  316. string OldIP;
  317. //Path to Parent within Dali(Encoded to prevent back-engineering)
  318. string Path;
  319. //installation path for corresponding component for monitoring processes
  320. string Directory;
  321. string LogDirectory;
  322. };
  323. ESPresponse [exceptions_inline] TpMachineQueryResponse
  324. {
  325. bool EnablePreflightInfo;
  326. [min_ver("1.15")] bool HasThorSpareProcess;
  327. TpMachineType Type;
  328. string Cluster;
  329. string OldIP;
  330. string LogDirectory;
  331. //Path to Parent within Dali(Encoded to prevent back-engineering)
  332. //This is echoed back from request and is used for swap node.
  333. string Path;
  334. int MemThreshold;
  335. int DiskThreshold;
  336. int CpuThreshold;
  337. string MemThresholdType;
  338. string DiskThresholdType;
  339. [min_ver("1.13")] string PreflightProcessFilter;
  340. [min_ver("1.08")] bool EnableSNMP;
  341. ESParray<ESPstruct TpMachine> TpMachines;
  342. };
  343. ESPrequest TpServiceQueryRequest
  344. {
  345. //Path to Parent within Dali(Encoded to prevent back-engineering)
  346. string Type;
  347. };
  348. ESPresponse [nil_remove, exceptions_inline] TpServiceQueryResponse
  349. {
  350. int MemThreshold;
  351. int DiskThreshold;
  352. int CpuThreshold;
  353. [min_ver("1.07")] bool EncapsulatedSystem;
  354. [min_ver("1.08")] bool EnableSNMP;
  355. [min_ver("1.13")] string PreflightProcessFilter;
  356. string MemThresholdType;
  357. string DiskThresholdType;
  358. ESPstruct TpServices ServiceList;
  359. };
  360. ESPrequest TpSetMachineStatusRequest
  361. {
  362. string MachinePath;
  363. string StatusValue;
  364. };
  365. ESPresponse [exceptions_inline] TpSetMachineStatusResponse
  366. {
  367. bool TpSetMachineStatusResult;
  368. };
  369. ESPrequest TpSwapNodeRequest
  370. {
  371. string Cluster;
  372. string OldIP;
  373. string NewIP;
  374. };
  375. ESPresponse [exceptions_inline] TpSwapNodeResponse
  376. {
  377. bool TpSwapNodeResult;
  378. };
  379. ESPrequest [nil_remove] TpXMLFileRequest
  380. {
  381. string Name;
  382. };
  383. ESPresponse [exceptions_inline] TpXMLFileResponse
  384. {
  385. [http_content("application/octet-stream")] binary thefile;
  386. };
  387. ESPrequest [nil_remove] TpLogFileRequest
  388. {
  389. string Name;
  390. string Type;
  391. [min_ver("1.05")] string StartDate;
  392. [min_ver("1.05")] string EndDate;
  393. [min_ver("1.05")] int FirstRows;
  394. [min_ver("1.05")] int LastRows;
  395. [min_ver("1.05")] int FilterType(0);
  396. [min_ver("1.05")] bool Reversely(false);
  397. [min_ver("1.05")] bool Zip(false);
  398. [min_ver("1.05")] int PageNumber(0);
  399. [min_ver("1.05")] bool LoadData(false);
  400. };
  401. ESPresponse [exceptions_inline] TpLogFileResponse
  402. {
  403. [min_ver("1.05")] string Name;
  404. [min_ver("1.05")] string Type;
  405. [min_ver("1.05")] string StartDate;
  406. [min_ver("1.05")] string EndDate;
  407. [min_ver("1.05")] int LastHours;
  408. [min_ver("1.05")] int FirstRows;
  409. [min_ver("1.05")] int LastRows;
  410. [min_ver("1.05")] bool Reversely;
  411. [min_ver("1.05")] bool Zip;
  412. [min_ver("1.05")] int FilterType;
  413. [min_ver("1.05")] string LogData;
  414. [min_ver("1.05")] bool HasDate(true);
  415. [min_ver("1.05")] int64 FileSize;
  416. [min_ver("1.05")] int64 PageFrom(0);
  417. [min_ver("1.05")] int64 PageTo;
  418. [min_ver("1.05")] int PageNumber(0);
  419. [min_ver("1.05")] int PrevPage(-1);
  420. [min_ver("1.05")] int NextPage(-1);
  421. [min_ver("1.06")] int TotalPages;
  422. [http_content("application/octet-stream")] binary thefile;
  423. };
  424. ESPrequest [nil_remove] SystemLogRequest
  425. {
  426. string Name;
  427. string Type;
  428. int Zip;
  429. };
  430. ESPresponse [exceptions_inline] SystemLogResponse
  431. {
  432. [http_content("application/octet-stream")] binary thefile;
  433. };
  434. SCMenum OS_TYPE
  435. {
  436. OS_WINDOWS,
  437. OS_SOLARIS,
  438. OS_LINUX
  439. };
  440. ESPrequest TpGetComponentFileRequest
  441. {
  442. string CompType;
  443. string CompName;
  444. string NetAddress;
  445. string Directory;
  446. string FileType;
  447. int OsType;
  448. string PlainText;
  449. };
  450. ESPresponse [exceptions_inline] TpGetComponentFileResponse
  451. {
  452. [http_content("application/octet-stream")] binary FileContents;
  453. };
  454. ESPservice [noforms, version("1.17"), default_client_version("1.17"), exceptions_inline("./smc_xslt/exceptions.xslt")] WsTopology
  455. {
  456. ESPuses ESPStruct TpBinding;
  457. ESPuses ESPstruct TpCluster;
  458. ESPuses ESPstruct TpDali;
  459. ESPuses ESPstruct TpDfuServer;
  460. ESPuses ESPstruct TpDropZone;
  461. ESPuses ESPstruct TpEclAgent;
  462. ESPuses ESPstruct TpEclServer;
  463. ESPuses ESPstruct TpEspServer;
  464. ESPuses ESPstruct TpFTSlave;
  465. ESPuses ESPstruct TpDkcSlave;
  466. ESPuses ESPstruct TpGroup;
  467. ESPuses ESPstruct TpLdapServer;
  468. ESPuses ESPStruct TpLogicalCluster;
  469. ESPuses ESPstruct TpMachine;
  470. ESPuses ESPstruct TpMySqlServer;
  471. ESPuses ESPStruct TpQueryType;
  472. ESPuses ESPStruct TpSashaServer;
  473. ESPuses ESPstruct TpServices;
  474. ESPuses ESPstruct TpTargetCluster;
  475. ESPmethod [resp_xsl_default("/esp/xslt/targetclusters.xslt")]TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse);
  476. ///ESPmethod TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse);
  477. ESPmethod [resp_xsl_default("/esp/xslt/topology.xslt")] TpClusterQuery(TpClusterQueryRequest, TpClusterQueryResponse);
  478. ESPmethod TpLogicalClusterQuery(TpLogicalClusterQueryRequest, TpLogicalClusterQueryResponse);
  479. ESPmethod TpGroupQuery(TpGroupQueryRequest, TpGroupQueryResponse);
  480. ESPmethod [resp_xsl_default("/esp/xslt/machines.xslt")] TpMachineQuery(TpMachineQueryRequest, TpMachineQueryResponse);
  481. ESPmethod [resp_xsl_default("/esp/xslt/cluster_info.xslt")] TpClusterInfo(TpClusterInfoRequest, TpClusterInfoResponse);
  482. ESPmethod [resp_xsl_default("/esp/xslt/services.xslt")] TpServiceQuery(TpServiceQueryRequest, TpServiceQueryResponse);
  483. ESPmethod TpSetMachineStatus(TpSetMachineStatusRequest, TpSetMachineStatusResponse);
  484. ESPmethod TpSwapNode(TpSwapNodeRequest, TpSwapNodeResponse);
  485. ESPmethod TpXMLFile(TpXMLFileRequest, TpXMLFileResponse);
  486. ESPmethod [resp_xsl_default("/esp/xslt/tplog.xslt")] TpLogFile(TpLogFileRequest, TpLogFileResponse);
  487. ESPmethod [resp_xsl_default("/esp/xslt/tplogdisplay.xslt")] TpLogFileDisplay(TpLogFileRequest, TpLogFileResponse);
  488. ESPmethod TpGetComponentFile(TpGetComponentFileRequest, TpGetComponentFileResponse);
  489. ESPmethod SystemLog(SystemLogRequest, SystemLogResponse);
  490. };
  491. SCMexportdef(WSWU);
  492. SCMapi(WSWU) IClientWsTopology *createWsTopologyClient();