ws_topology.ecm 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  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. [min_ver("1.22")] string Type;
  55. };
  56. // ===========================================================================
  57. // ===========================================================================
  58. ESPStruct [nil_remove] TpGroup
  59. {
  60. string Name;
  61. [min_ver("1.21")] string Kind;
  62. [min_ver("1.21")] bool ReplicateOutputs;
  63. };
  64. // ===========================================================================
  65. ESPStruct TpDali
  66. {
  67. string Name;
  68. string Description;
  69. string Build;
  70. string BackupComputer;
  71. string BackupDirectory;
  72. string Type;
  73. string Path;
  74. string LogDirectory;
  75. ESParray<ESPstruct TpMachine> TpMachines;
  76. };
  77. // ===========================================================================
  78. ESPStruct TpEclServer
  79. {
  80. string Name;
  81. string Description;
  82. string Build;
  83. string LogDirectory;
  84. string Type;
  85. string Path;
  86. ESParray<ESPstruct TpMachine> TpMachines;
  87. };
  88. // ===========================================================================
  89. ESPStruct TpEclAgent
  90. {
  91. string Name;
  92. string Description;
  93. string Build;
  94. string Type;
  95. string Path;
  96. string DaliServer;
  97. string LogDir;
  98. ESParray<ESPstruct TpMachine> TpMachines;
  99. //ESPstruct TpAgentExec AgentExec;
  100. };
  101. // ===========================================================================
  102. ESPStruct TpAgentExec
  103. {
  104. string DaliServer;
  105. string LogDir;
  106. };
  107. // ===========================================================================
  108. ESPStruct TpEclScheduler
  109. {
  110. string Name;
  111. string Description;
  112. string Build;
  113. string LogDirectory;
  114. string Type;
  115. string Path;
  116. ESParray<ESPstruct TpMachine> TpMachines;
  117. };
  118. // ===========================================================================
  119. ESPStruct [nil_remove] TpBinding
  120. {
  121. string Name;
  122. string Service;
  123. string ServiceType;
  124. [min_ver("1.23")] string BindingType;
  125. [min_ver("1.24")] string ServiceBuildSet;
  126. string Port;
  127. string Protocol;
  128. };
  129. ESPStruct TpEspServicePlugin
  130. {
  131. string ShortName;
  132. string LongName;
  133. string FolderName;
  134. string WidgetName;
  135. };
  136. // ===========================================================================
  137. ESPStruct TpEspServer
  138. {
  139. string Name;
  140. string Description;
  141. string Build;
  142. string Type;
  143. string Path;
  144. string LogDirectory;
  145. ESParray<ESPstruct TpMachine> TpMachines;
  146. ESParray<ESPstruct TpBinding> TpBindings;
  147. };
  148. // ===========================================================================
  149. ESPStruct TpDfuServer
  150. {
  151. string Name;
  152. string Description;
  153. string Build;
  154. string Queue;
  155. string Type;
  156. string Path;
  157. string LogDirectory;
  158. ESParray<ESPstruct TpMachine> TpMachines;
  159. };
  160. // ===========================================================================
  161. ESPStruct TpSashaServer
  162. {
  163. string Name;
  164. string Description;
  165. string Build;
  166. string Path;
  167. string LogDirectory;
  168. ESParray<ESPstruct TpMachine> TpMachines;
  169. };
  170. // ===========================================================================
  171. ESPStruct TpLdapServer
  172. {
  173. string Name;
  174. string Description;
  175. string Build;
  176. string Path;
  177. ESParray<ESPstruct TpMachine> TpMachines;
  178. };
  179. // ===========================================================================
  180. ESPStruct TpDropZone
  181. {
  182. string Name;
  183. string Description;
  184. string Build;
  185. string Path;
  186. [min_ver("1.26")]bool ECLWatchVisible;
  187. [min_ver("1.26")]string UMask;
  188. ESParray<ESPstruct TpMachine> TpMachines;
  189. };
  190. // ===========================================================================
  191. ESPStruct TpMySqlServer
  192. {
  193. string Name;
  194. string Description;
  195. string Build;
  196. string Path;
  197. ESParray<ESPstruct TpMachine> TpMachines;
  198. };
  199. // ===========================================================================
  200. ESPStruct TpFTSlave
  201. {
  202. string Name;
  203. string Description;
  204. string Build;
  205. string Path;
  206. ESParray<ESPstruct TpMachine> TpMachines;
  207. };
  208. // ===========================================================================
  209. ESPStruct TpDkcSlave
  210. {
  211. string Name;
  212. string Description;
  213. string Build;
  214. string Path;
  215. ESParray<ESPstruct TpMachine> TpMachines;
  216. };
  217. // ===========================================================================
  218. ESPStruct TpGenesisServer
  219. {
  220. string Name;
  221. string Description;
  222. string Build;
  223. string Path;
  224. ESParray<ESPstruct TpMachine> TpMachines;
  225. };
  226. // ===========================================================================
  227. ESPStruct TpQueue
  228. {
  229. string Name;
  230. string WorkUnit;
  231. };
  232. // ===========================================================================
  233. ESPStruct TpServices
  234. {
  235. ESParray<ESPstruct TpDali> TpDalis;
  236. ESParray<ESPstruct TpDfuServer> TpDfuServers;
  237. ESParray<ESPstruct TpDkcSlave> TpDkcSlaves;
  238. ESParray<ESPstruct TpDropZone> TpDropZones;
  239. ESParray<ESPstruct TpEclAgent> TpEclAgents;
  240. ESParray<ESPstruct TpEclServer> TpEclServers;
  241. ESParray<ESPstruct TpEclServer> TpEclCCServers;
  242. [min_ver("1.16")] ESParray<ESPstruct TpEclScheduler> TpEclSchedulers;
  243. ESParray<ESPstruct TpEspServer> TpEspServers;
  244. ESParray<ESPstruct TpFTSlave> TpFTSlaves;
  245. ESParray<ESPstruct TpGenesisServer> TpGenesisServers;
  246. ESParray<ESPstruct TpLdapServer> TpLdapServers;
  247. ESParray<ESPstruct TpMySqlServer> TpMySqlServers;
  248. ESParray<ESPstruct TpSashaServer> TpSashaServers;
  249. };
  250. ESPStruct TpClusterNameType
  251. {
  252. string Name;
  253. string Type;
  254. bool IsDefault;
  255. };
  256. ESPrequest TpListTargetClustersRequest
  257. {
  258. };
  259. ESPresponse [exceptions_inline] TpListTargetClustersResponse
  260. {
  261. ESParray<ESPstruct TpClusterNameType> TargetClusters;
  262. };
  263. // ===========================================================================
  264. ESPStruct TpTargetCluster
  265. {
  266. string Name;
  267. string Prefix;
  268. TpQueryType Type;
  269. ESParray<ESPstruct TpCluster> TpClusters;
  270. ESParray<ESPstruct TpEclServer> TpEclCCServers;
  271. [min_ver("1.19")] ESParray<ESPstruct TpEclServer> TpEclServers;
  272. ESParray<ESPstruct TpEclAgent> TpEclAgents;
  273. [min_ver("1.16")] ESParray<ESPstruct TpEclScheduler> TpEclSchedulers;
  274. };
  275. ESPStruct TpQueryType
  276. {
  277. TPCLUSTER;
  278. TPNODE;
  279. };
  280. ESPrequest TpTargetClusterQueryRequest
  281. {
  282. TpQueryType Type;
  283. string Name;
  284. bool ShowDetails(false);
  285. };
  286. ESPresponse [exceptions_inline]TpTargetClusterQueryResponse
  287. {
  288. //bool EncapsulatedSystem;
  289. //bool EnablePreflightInfo;
  290. bool ShowDetails(false);
  291. int MemThreshold;
  292. int DiskThreshold;
  293. int CpuThreshold;
  294. string MemThresholdType;
  295. string DiskThresholdType;
  296. [min_ver("1.13")] string PreflightProcessFilter;
  297. [min_ver("1.20")] string AcceptLanguage;
  298. ESParray<ESPstruct TpTargetCluster> TpTargetClusters;
  299. };
  300. ESPrequest TpClusterQueryRequest
  301. {
  302. TpQueryType Type;
  303. };
  304. ESPresponse [exceptions_inline]TpClusterQueryResponse
  305. {
  306. [min_ver("1.08")] bool EnableSNMP;
  307. [min_ver("1.20")] string AcceptLanguage;
  308. ESParray<ESPstruct TpCluster> TpClusters;
  309. };
  310. ESPrequest TpLogicalClusterQueryRequest
  311. {
  312. string EclServerQueue;
  313. };
  314. ESPresponse [exceptions_inline] TpLogicalClusterQueryResponse
  315. {
  316. ESParray<ESPstruct TpLogicalCluster> TpLogicalClusters;
  317. };
  318. ESPrequest [nil_remove] TpGroupQueryRequest
  319. {
  320. [min_ver("1.21")] string Kind;
  321. };
  322. ESPresponse [exceptions_inline] TpGroupQueryResponse
  323. {
  324. ESParray<ESPstruct TpGroup> TpGroups;
  325. };
  326. ESPrequest TpClusterInfoRequest
  327. {
  328. //Type of Node the parent is....
  329. string Name;
  330. };
  331. ESPresponse [exceptions_inline,encode(0)] TpClusterInfoResponse
  332. {
  333. string Name;
  334. string WorkUnit;
  335. [min_ver("1.10")] ESParray<ESPstruct TpQueue> TpQueues;
  336. };
  337. SCMenum TpMachineType
  338. {
  339. TPMACHINECLUSTER
  340. };
  341. ESPrequest [] TpMachineQueryRequest
  342. {
  343. //Type of Node the parent is....
  344. TpMachineType Type;
  345. string Cluster;
  346. string OldIP;
  347. //Path to Parent within Dali(Encoded to prevent back-engineering)
  348. string Path;
  349. //installation path for corresponding component for monitoring processes
  350. string Directory;
  351. string LogDirectory;
  352. };
  353. ESPresponse [exceptions_inline] TpMachineQueryResponse
  354. {
  355. bool EnablePreflightInfo;
  356. [min_ver("1.15")] bool HasThorSpareProcess;
  357. TpMachineType Type;
  358. string Cluster;
  359. string OldIP;
  360. string LogDirectory;
  361. //Path to Parent within Dali(Encoded to prevent back-engineering)
  362. //This is echoed back from request and is used for swap node.
  363. string Path;
  364. int MemThreshold;
  365. int DiskThreshold;
  366. int CpuThreshold;
  367. string MemThresholdType;
  368. string DiskThresholdType;
  369. [min_ver("1.13")] string PreflightProcessFilter;
  370. [min_ver("1.08")] bool EnableSNMP;
  371. [min_ver("1.20")] string AcceptLanguage;
  372. ESParray<ESPstruct TpMachine> TpMachines;
  373. };
  374. ESPrequest [] TpMachineInfoRequest
  375. {
  376. string Name;
  377. string NetAddress;
  378. };
  379. ESPresponse [exceptions_inline] TpMachineInfoResponse
  380. {
  381. ESPstruct TpMachine MachineInfo;
  382. };
  383. ESPrequest TpServiceQueryRequest
  384. {
  385. //Path to Parent within Dali(Encoded to prevent back-engineering)
  386. string Type;
  387. };
  388. ESPresponse [nil_remove, exceptions_inline] TpServiceQueryResponse
  389. {
  390. int MemThreshold;
  391. int DiskThreshold;
  392. int CpuThreshold;
  393. [min_ver("1.07")] bool EncapsulatedSystem;
  394. [min_ver("1.08")] bool EnableSNMP;
  395. [min_ver("1.13")] string PreflightProcessFilter;
  396. [min_ver("1.20")] string AcceptLanguage;
  397. string MemThresholdType;
  398. string DiskThresholdType;
  399. ESPstruct TpServices ServiceList;
  400. };
  401. ESPrequest TpSetMachineStatusRequest
  402. {
  403. string MachinePath;
  404. string StatusValue;
  405. };
  406. ESPresponse [exceptions_inline] TpSetMachineStatusResponse
  407. {
  408. bool TpSetMachineStatusResult;
  409. };
  410. ESPrequest TpSwapNodeRequest
  411. {
  412. string Cluster;
  413. string OldIP;
  414. string NewIP;
  415. };
  416. ESPresponse [exceptions_inline] TpSwapNodeResponse
  417. {
  418. bool TpSwapNodeResult;
  419. };
  420. ESPrequest [nil_remove] TpXMLFileRequest
  421. {
  422. string Name;
  423. };
  424. ESPresponse [exceptions_inline] TpXMLFileResponse
  425. {
  426. [http_content("application/octet-stream")] binary thefile;
  427. };
  428. ESPrequest [nil_remove] TpLogFileRequest
  429. {
  430. string Name;
  431. string Type;
  432. int LastHours;
  433. [min_ver("1.05")] string StartDate;
  434. [min_ver("1.05")] string EndDate;
  435. [min_ver("1.05")] int FirstRows;
  436. [min_ver("1.05")] int LastRows;
  437. [min_ver("1.05")] int FilterType(0);
  438. [min_ver("1.05")] bool Reversely(false);
  439. [min_ver("1.05")] bool Zip(false);
  440. [min_ver("1.05")] int PageNumber(0);
  441. [min_ver("1.05")] bool LoadData(false);
  442. };
  443. ESPresponse [exceptions_inline] TpLogFileResponse
  444. {
  445. [min_ver("1.05")] string Name;
  446. [min_ver("1.05")] string Type;
  447. [min_ver("1.05")] string StartDate;
  448. [min_ver("1.05")] string EndDate;
  449. [min_ver("1.05")] int LastHours;
  450. [min_ver("1.05")] int FirstRows;
  451. [min_ver("1.05")] int LastRows;
  452. [min_ver("1.05")] bool Reversely;
  453. [min_ver("1.05")] bool Zip;
  454. [min_ver("1.05")] int FilterType;
  455. [min_ver("1.05")] string LogData;
  456. [min_ver("1.05")] bool HasDate(true);
  457. [min_ver("1.05")] int64 FileSize;
  458. [min_ver("1.05")] int64 PageFrom(0);
  459. [min_ver("1.05")] int64 PageTo;
  460. [min_ver("1.05")] int PageNumber(0);
  461. [min_ver("1.05")] int PrevPage(-1);
  462. [min_ver("1.05")] int NextPage(-1);
  463. [min_ver("1.06")] int TotalPages;
  464. [min_ver("1.20")] string AcceptLanguage;
  465. };
  466. ESPrequest [nil_remove] SystemLogRequest
  467. {
  468. string Name;
  469. string Type;
  470. int Zip;
  471. };
  472. ESPresponse [exceptions_inline] SystemLogResponse
  473. {
  474. [http_content("application/octet-stream")] binary thefile;
  475. };
  476. SCMenum OS_TYPE
  477. {
  478. OS_WINDOWS,
  479. OS_SOLARIS,
  480. OS_LINUX
  481. };
  482. ESPrequest TpGetComponentFileRequest
  483. {
  484. string CompType;
  485. string CompName;
  486. string NetAddress;
  487. string Directory;
  488. string FileType;
  489. int OsType;
  490. string PlainText;
  491. };
  492. ESPresponse [exceptions_inline] TpGetComponentFileResponse
  493. {
  494. [http_content("application/octet-stream")] binary FileContents;
  495. };
  496. ESPrequest TpThorStatusRequest
  497. {
  498. string Name;
  499. };
  500. ESPresponse [exceptions_inline,encode(0)] TpThorStatusResponse
  501. {
  502. string Name;
  503. string Queue;
  504. string Group;
  505. string ThorMasterIPAddress;
  506. int Port;
  507. string StartTime;
  508. string LogFile;
  509. string Wuid;
  510. string Graph;
  511. int SubGraph;
  512. int SubGraphDuration;
  513. int AutoRefresh;
  514. };
  515. ESPrequest TpGetServicePluginsRequest
  516. {
  517. };
  518. ESPresponse [exceptions_inline,encode(0)] TpGetServicePluginsResponse
  519. {
  520. ESParray<ESPstruct TpEspServicePlugin, Plugin> Plugins;
  521. };
  522. ESPrequest TpDropZoneQueryRequest
  523. {
  524. string Name;
  525. bool ECLWatchVisibleOnly;
  526. };
  527. ESPresponse [nil_remove, exceptions_inline] TpDropZoneQueryResponse
  528. {
  529. ESParray<ESPstruct TpDropZone> TpDropZones;
  530. };
  531. ESPservice [auth_feature("DEFERRED"), noforms, version("1.26"), exceptions_inline("./smc_xslt/exceptions.xslt")] WsTopology
  532. {
  533. ESPmethod [cache_seconds(180), cache_global(1), resp_xsl_default("/esp/xslt/targetclusters.xslt")] TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse);
  534. ESPmethod [cache_seconds(180), cache_global(1), resp_xsl_default("/esp/xslt/topology.xslt")] TpClusterQuery(TpClusterQueryRequest, TpClusterQueryResponse);
  535. ESPmethod [cache_seconds(180), cache_global(1)] TpLogicalClusterQuery(TpLogicalClusterQueryRequest, TpLogicalClusterQueryResponse);
  536. ESPmethod [cache_seconds(180), cache_global(1)] TpGroupQuery(TpGroupQueryRequest, TpGroupQueryResponse);
  537. ESPmethod [cache_seconds(180), cache_global(1), resp_xsl_default("/esp/xslt/machines.xslt")] TpMachineQuery(TpMachineQueryRequest, TpMachineQueryResponse);
  538. ESPmethod [cache_seconds(180), cache_global(1), resp_xsl_default("/esp/xslt/cluster_info.xslt")] TpClusterInfo(TpClusterInfoRequest, TpClusterInfoResponse);
  539. ESPmethod [cache_seconds(180), cache_global(1), resp_xsl_default("/esp/xslt/thor_status.xslt")] TpThorStatus(TpThorStatusRequest, TpThorStatusResponse);
  540. ESPmethod [cache_seconds(180), cache_global(1), min_ver("1.26")] TpDropZoneQuery(TpDropZoneQueryRequest, TpDropZoneQueryResponse);
  541. ESPmethod [cache_seconds(180), cache_global(1), resp_xsl_default("/esp/xslt/services.xslt")] TpServiceQuery(TpServiceQueryRequest, TpServiceQueryResponse);
  542. ESPmethod TpSetMachineStatus(TpSetMachineStatusRequest, TpSetMachineStatusResponse);
  543. ESPmethod TpSwapNode(TpSwapNodeRequest, TpSwapNodeResponse);
  544. ESPmethod [cache_seconds(180)] TpXMLFile(TpXMLFileRequest, TpXMLFileResponse);
  545. ESPmethod [resp_xsl_default("/esp/xslt/tplog.xslt")] TpLogFile(TpLogFileRequest, TpLogFileResponse);
  546. ESPmethod [resp_xsl_default("/esp/xslt/tplogdisplay.xslt")] TpLogFileDisplay(TpLogFileRequest, TpLogFileResponse);
  547. ESPmethod TpGetComponentFile(TpGetComponentFileRequest, TpGetComponentFileResponse);
  548. ESPmethod [cache_seconds(180), cache_global(1)] TpGetServicePlugins(TpGetServicePluginsRequest, TpGetServicePluginsResponse);
  549. ESPmethod [cache_seconds(180), cache_global(1)] TpListTargetClusters(TpListTargetClustersRequest, TpListTargetClustersResponse);
  550. ESPmethod [cache_seconds(180), cache_global(1), min_ver(1.25)] TpMachineInfo(TpMachineInfoRequest, TpMachineInfoResponse);
  551. ESPmethod SystemLog(SystemLogRequest, SystemLogResponse);
  552. };
  553. SCMexportdef(WSWU);
  554. SCMapi(WSWU) IClientWsTopology *createWsTopologyClient();