ws_topology.ecm 18 KB

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