ws_topology.ecm 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  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. ////////////////////////////////////////////////////////////
  14. // ===========================================================================
  15. ESPStruct TpMachine
  16. {
  17. string Name;
  18. string Netaddress;
  19. [min_ver("1.09")] string ConfigNetaddress;
  20. string Domain;
  21. string Directory;
  22. string Type;
  23. string Available;
  24. int OS;
  25. string Path;
  26. int Port;
  27. [min_ver("1.18")] int ProcessNumber;
  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 TpDfuServer> TpDfuServers;
  224. ESParray<ESPstruct TpDkcSlave> TpDkcSlaves;
  225. ESParray<ESPstruct TpDropZone> TpDropZones;
  226. ESParray<ESPstruct TpEclAgent> TpEclAgents;
  227. ESParray<ESPstruct TpEclServer> TpEclServers;
  228. ESParray<ESPstruct TpEclServer> TpEclCCServers;
  229. [min_ver("1.16")] ESParray<ESPstruct TpEclScheduler> TpEclSchedulers;
  230. ESParray<ESPstruct TpEspServer> TpEspServers;
  231. ESParray<ESPstruct TpFTSlave> TpFTSlaves;
  232. ESParray<ESPstruct TpGenesisServer> TpGenesisServers;
  233. ESParray<ESPstruct TpLdapServer> TpLdapServers;
  234. ESParray<ESPstruct TpMySqlServer> TpMySqlServers;
  235. ESParray<ESPstruct TpSashaServer> TpSashaServers;
  236. };
  237. ESPStruct TpClusterNameType
  238. {
  239. string Name;
  240. string Type;
  241. bool IsDefault;
  242. };
  243. ESPrequest TpListTargetClustersRequest
  244. {
  245. };
  246. ESPresponse [exceptions_inline] TpListTargetClustersResponse
  247. {
  248. ESParray<ESPstruct TpClusterNameType> TargetClusters;
  249. };
  250. // ===========================================================================
  251. ESPStruct TpTargetCluster
  252. {
  253. string Name;
  254. string Prefix;
  255. TpQueryType Type;
  256. ESParray<ESPstruct TpCluster> TpClusters;
  257. ESParray<ESPstruct TpEclServer> TpEclCCServers;
  258. [min_ver("1.19")] ESParray<ESPstruct TpEclServer> TpEclServers;
  259. ESParray<ESPstruct TpEclAgent> TpEclAgents;
  260. [min_ver("1.16")] ESParray<ESPstruct TpEclScheduler> TpEclSchedulers;
  261. };
  262. ESPStruct TpQueryType
  263. {
  264. TPCLUSTER;
  265. TPNODE;
  266. };
  267. ESPrequest TpTargetClusterQueryRequest
  268. {
  269. TpQueryType Type;
  270. string Name;
  271. bool ShowDetails(false);
  272. };
  273. ESPresponse [exceptions_inline]TpTargetClusterQueryResponse
  274. {
  275. //bool EncapsulatedSystem;
  276. //bool EnablePreflightInfo;
  277. bool ShowDetails(false);
  278. int MemThreshold;
  279. int DiskThreshold;
  280. int CpuThreshold;
  281. string MemThresholdType;
  282. string DiskThresholdType;
  283. [min_ver("1.13")] string PreflightProcessFilter;
  284. [min_ver("1.20")] string AcceptLanguage;
  285. ESParray<ESPstruct TpTargetCluster> TpTargetClusters;
  286. };
  287. ESPrequest TpClusterQueryRequest
  288. {
  289. TpQueryType Type;
  290. };
  291. ESPresponse [exceptions_inline]TpClusterQueryResponse
  292. {
  293. [min_ver("1.08")] bool EnableSNMP;
  294. [min_ver("1.20")] string AcceptLanguage;
  295. ESParray<ESPstruct TpCluster> TpClusters;
  296. };
  297. ESPrequest TpLogicalClusterQueryRequest
  298. {
  299. string EclServerQueue;
  300. };
  301. ESPresponse [exceptions_inline] TpLogicalClusterQueryResponse
  302. {
  303. ESParray<ESPstruct TpLogicalCluster> TpLogicalClusters;
  304. };
  305. ESPrequest TpGroupQueryRequest
  306. {
  307. };
  308. ESPresponse [exceptions_inline] TpGroupQueryResponse
  309. {
  310. ESParray<ESPstruct TpGroup> TpGroups;
  311. };
  312. ESPrequest TpClusterInfoRequest
  313. {
  314. //Type of Node the parent is....
  315. string Name;
  316. };
  317. ESPresponse [exceptions_inline,encode(0)] TpClusterInfoResponse
  318. {
  319. string Name;
  320. string WorkUnit;
  321. [min_ver("1.10")] ESParray<ESPstruct TpQueue> TpQueues;
  322. };
  323. SCMenum TpMachineType
  324. {
  325. TPMACHINECLUSTER
  326. };
  327. ESPrequest [] TpMachineQueryRequest
  328. {
  329. //Type of Node the parent is....
  330. TpMachineType Type;
  331. string Cluster;
  332. string OldIP;
  333. //Path to Parent within Dali(Encoded to prevent back-engineering)
  334. string Path;
  335. //installation path for corresponding component for monitoring processes
  336. string Directory;
  337. string LogDirectory;
  338. };
  339. ESPresponse [exceptions_inline] TpMachineQueryResponse
  340. {
  341. bool EnablePreflightInfo;
  342. [min_ver("1.15")] bool HasThorSpareProcess;
  343. TpMachineType Type;
  344. string Cluster;
  345. string OldIP;
  346. string LogDirectory;
  347. //Path to Parent within Dali(Encoded to prevent back-engineering)
  348. //This is echoed back from request and is used for swap node.
  349. string Path;
  350. int MemThreshold;
  351. int DiskThreshold;
  352. int CpuThreshold;
  353. string MemThresholdType;
  354. string DiskThresholdType;
  355. [min_ver("1.13")] string PreflightProcessFilter;
  356. [min_ver("1.08")] bool EnableSNMP;
  357. [min_ver("1.20")] string AcceptLanguage;
  358. ESParray<ESPstruct TpMachine> TpMachines;
  359. };
  360. ESPrequest TpServiceQueryRequest
  361. {
  362. //Path to Parent within Dali(Encoded to prevent back-engineering)
  363. string Type;
  364. };
  365. ESPresponse [nil_remove, exceptions_inline] TpServiceQueryResponse
  366. {
  367. int MemThreshold;
  368. int DiskThreshold;
  369. int CpuThreshold;
  370. [min_ver("1.07")] bool EncapsulatedSystem;
  371. [min_ver("1.08")] bool EnableSNMP;
  372. [min_ver("1.13")] string PreflightProcessFilter;
  373. [min_ver("1.20")] string AcceptLanguage;
  374. string MemThresholdType;
  375. string DiskThresholdType;
  376. ESPstruct TpServices ServiceList;
  377. };
  378. ESPrequest TpSetMachineStatusRequest
  379. {
  380. string MachinePath;
  381. string StatusValue;
  382. };
  383. ESPresponse [exceptions_inline] TpSetMachineStatusResponse
  384. {
  385. bool TpSetMachineStatusResult;
  386. };
  387. ESPrequest TpSwapNodeRequest
  388. {
  389. string Cluster;
  390. string OldIP;
  391. string NewIP;
  392. };
  393. ESPresponse [exceptions_inline] TpSwapNodeResponse
  394. {
  395. bool TpSwapNodeResult;
  396. };
  397. ESPrequest [nil_remove] TpXMLFileRequest
  398. {
  399. string Name;
  400. };
  401. ESPresponse [exceptions_inline] TpXMLFileResponse
  402. {
  403. [http_content("application/octet-stream")] binary thefile;
  404. };
  405. ESPrequest [nil_remove] TpLogFileRequest
  406. {
  407. string Name;
  408. string Type;
  409. int LastHours;
  410. [min_ver("1.05")] string StartDate;
  411. [min_ver("1.05")] string EndDate;
  412. [min_ver("1.05")] int FirstRows;
  413. [min_ver("1.05")] int LastRows;
  414. [min_ver("1.05")] int FilterType(0);
  415. [min_ver("1.05")] bool Reversely(false);
  416. [min_ver("1.05")] bool Zip(false);
  417. [min_ver("1.05")] int PageNumber(0);
  418. [min_ver("1.05")] bool LoadData(false);
  419. };
  420. ESPresponse [exceptions_inline] TpLogFileResponse
  421. {
  422. [min_ver("1.05")] string Name;
  423. [min_ver("1.05")] string Type;
  424. [min_ver("1.05")] string StartDate;
  425. [min_ver("1.05")] string EndDate;
  426. [min_ver("1.05")] int LastHours;
  427. [min_ver("1.05")] int FirstRows;
  428. [min_ver("1.05")] int LastRows;
  429. [min_ver("1.05")] bool Reversely;
  430. [min_ver("1.05")] bool Zip;
  431. [min_ver("1.05")] int FilterType;
  432. [min_ver("1.05")] string LogData;
  433. [min_ver("1.05")] bool HasDate(true);
  434. [min_ver("1.05")] int64 FileSize;
  435. [min_ver("1.05")] int64 PageFrom(0);
  436. [min_ver("1.05")] int64 PageTo;
  437. [min_ver("1.05")] int PageNumber(0);
  438. [min_ver("1.05")] int PrevPage(-1);
  439. [min_ver("1.05")] int NextPage(-1);
  440. [min_ver("1.06")] int TotalPages;
  441. [min_ver("1.20")] string AcceptLanguage;
  442. [http_content("application/octet-stream")] binary thefile;
  443. };
  444. ESPrequest [nil_remove] SystemLogRequest
  445. {
  446. string Name;
  447. string Type;
  448. int Zip;
  449. };
  450. ESPresponse [exceptions_inline] SystemLogResponse
  451. {
  452. [http_content("application/octet-stream")] binary thefile;
  453. };
  454. SCMenum OS_TYPE
  455. {
  456. OS_WINDOWS,
  457. OS_SOLARIS,
  458. OS_LINUX
  459. };
  460. ESPrequest TpGetComponentFileRequest
  461. {
  462. string CompType;
  463. string CompName;
  464. string NetAddress;
  465. string Directory;
  466. string FileType;
  467. int OsType;
  468. string PlainText;
  469. };
  470. ESPresponse [exceptions_inline] TpGetComponentFileResponse
  471. {
  472. [http_content("application/octet-stream")] binary FileContents;
  473. };
  474. ESPrequest TpThorStatusRequest
  475. {
  476. string Name;
  477. };
  478. ESPresponse [exceptions_inline,encode(0)] TpThorStatusResponse
  479. {
  480. string Name;
  481. string Queue;
  482. string Group;
  483. string ThorMasterIPAddress;
  484. int Port;
  485. string StartTime;
  486. string LogFile;
  487. string Wuid;
  488. string Graph;
  489. int SubGraph;
  490. int SubGraphDuration;
  491. int AutoRefresh;
  492. };
  493. ESPservice [noforms, version("1.20"), default_client_version("1.20"), exceptions_inline("./smc_xslt/exceptions.xslt")] WsTopology
  494. {
  495. ESPuses ESPStruct TpBinding;
  496. ESPuses ESPstruct TpCluster;
  497. ESPuses ESPstruct TpDali;
  498. ESPuses ESPstruct TpDfuServer;
  499. ESPuses ESPstruct TpDropZone;
  500. ESPuses ESPstruct TpEclAgent;
  501. ESPuses ESPstruct TpEclServer;
  502. ESPuses ESPstruct TpEspServer;
  503. ESPuses ESPstruct TpFTSlave;
  504. ESPuses ESPstruct TpDkcSlave;
  505. ESPuses ESPstruct TpGroup;
  506. ESPuses ESPstruct TpLdapServer;
  507. ESPuses ESPStruct TpLogicalCluster;
  508. ESPuses ESPstruct TpMachine;
  509. ESPuses ESPstruct TpMySqlServer;
  510. ESPuses ESPStruct TpQueryType;
  511. ESPuses ESPStruct TpSashaServer;
  512. ESPuses ESPstruct TpServices;
  513. ESPuses ESPstruct TpTargetCluster;
  514. ESPmethod [resp_xsl_default("/esp/xslt/targetclusters.xslt")]TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse);
  515. ///ESPmethod TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse);
  516. ESPmethod [resp_xsl_default("/esp/xslt/topology.xslt")] TpClusterQuery(TpClusterQueryRequest, TpClusterQueryResponse);
  517. ESPmethod TpLogicalClusterQuery(TpLogicalClusterQueryRequest, TpLogicalClusterQueryResponse);
  518. ESPmethod TpGroupQuery(TpGroupQueryRequest, TpGroupQueryResponse);
  519. ESPmethod [resp_xsl_default("/esp/xslt/machines.xslt")] TpMachineQuery(TpMachineQueryRequest, TpMachineQueryResponse);
  520. ESPmethod [resp_xsl_default("/esp/xslt/cluster_info.xslt")] TpClusterInfo(TpClusterInfoRequest, TpClusterInfoResponse);
  521. ESPmethod [resp_xsl_default("/esp/xslt/thor_status.xslt")] TpThorStatus(TpThorStatusRequest, TpThorStatusResponse);
  522. ESPmethod [resp_xsl_default("/esp/xslt/services.xslt")] TpServiceQuery(TpServiceQueryRequest, TpServiceQueryResponse);
  523. ESPmethod TpSetMachineStatus(TpSetMachineStatusRequest, TpSetMachineStatusResponse);
  524. ESPmethod TpSwapNode(TpSwapNodeRequest, TpSwapNodeResponse);
  525. ESPmethod TpXMLFile(TpXMLFileRequest, TpXMLFileResponse);
  526. ESPmethod [resp_xsl_default("/esp/xslt/tplog.xslt")] TpLogFile(TpLogFileRequest, TpLogFileResponse);
  527. ESPmethod [resp_xsl_default("/esp/xslt/tplogdisplay.xslt")] TpLogFileDisplay(TpLogFileRequest, TpLogFileResponse);
  528. ESPmethod TpGetComponentFile(TpGetComponentFileRequest, TpGetComponentFileResponse);
  529. ESPmethod TpListTargetClusters(TpListTargetClustersRequest, TpListTargetClustersResponse);
  530. ESPmethod SystemLog(SystemLogRequest, SystemLogResponse);
  531. };
  532. SCMexportdef(WSWU);
  533. SCMapi(WSWU) IClientWsTopology *createWsTopologyClient();