/*############################################################################## Copyright (C) 2011 HPCC Systems. All rights reserved. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . ############################################################################## */ //////////////////////////////////////////////////////////// // =========================================================================== ESPStruct TpMachine { string Name; string Netaddress; [min_ver("1.09")] string ConfigNetaddress; string Domain; string Directory; string Type; string Available; int OS; string Path; int Port; }; // =========================================================================== ESPStruct TpCluster { string Type; string Name; [min_ver("1.03")] string QueueName; string Build; string Directory; string LogDirectory; string Desc; [max_ver("1.16")] string Prefix; string Path; string DataModel; int OS; [min_ver("1.15")] bool HasThorSpareProcess; [min_ver("1.12")] ESParray TpMachines; }; // =========================================================================== // =========================================================================== ESPStruct TpLogicalCluster { string Name; string Queue; [min_ver("1.14")] string LanguageVersion; [min_ver("1.11")] string Process; }; // =========================================================================== // =========================================================================== ESPStruct TpGroup { string Name; string Prefix; }; // =========================================================================== ESPStruct TpDali { string Name; string Description; string Build; string BackupComputer; string BackupDirectory; string Type; string Path; string LogDirectory; ESParray TpMachines; }; // =========================================================================== ESPStruct TpEclServer { string Name; string Description; string Build; string LogDirectory; string Type; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpEclAgent { string Name; string Description; string Build; string Type; string Path; string DaliServer; string LogDir; ESParray TpMachines; //ESPstruct TpAgentExec AgentExec; }; // =========================================================================== ESPStruct TpAgentExec { string DaliServer; string LogDir; }; // =========================================================================== ESPStruct TpEclScheduler { string Name; string Description; string Build; string LogDirectory; string Type; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpBinding { string Name; string Service; string ServiceType; string Port; string Protocol; }; // =========================================================================== ESPStruct TpEspServer { string Name; string Description; string Build; string Type; string Path; string LogDirectory; ESParray TpMachines; ESParray TpBindings; }; // =========================================================================== ESPStruct TpDfuServer { string Name; string Description; string Build; string Queue; string Type; string Path; string LogDirectory; ESParray TpMachines; }; // =========================================================================== ESPStruct TpSashaServer { string Name; string Description; string Build; string Path; string LogDirectory; ESParray TpMachines; }; // =========================================================================== ESPStruct TpLdapServer { string Name; string Description; string Build; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpDropZone { string Name; string Description; string Build; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpMySqlServer { string Name; string Description; string Build; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpFTSlave { string Name; string Description; string Build; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpDkcSlave { string Name; string Description; string Build; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpGenesisServer { string Name; string Description; string Build; string Path; ESParray TpMachines; }; // =========================================================================== ESPStruct TpQueue { string Name; string WorkUnit; }; // =========================================================================== ESPStruct TpServices { ESParray TpDalis; ESParray TpEclServers; ESParray TpEclCCServers; ESParray TpEclAgents; [min_ver("1.16")] ESParray TpEclSchedulers; ESParray TpEspServers; ESParray TpDfuServers; ESParray TpSashaServers; ESParray TpMySqlServers; ESParray TpLdapServers; ESParray TpDropZones; ESParray TpFTSlaves; ESParray TpDkcSlaves; ESParray TpGenesisServers; }; // =========================================================================== ESPStruct TpTargetCluster { string Name; string Prefix; TpQueryType Type; ESParray TpClusters; ESParray TpEclCCServers; ESParray TpEclAgents; [min_ver("1.16")] ESParray TpEclSchedulers; }; ESPStruct TpQueryType { TPCLUSTER; TPNODE; }; ESPrequest TpTargetClusterQueryRequest { TpQueryType Type; string Name; bool ShowDetails(false); }; ESPresponse [exceptions_inline]TpTargetClusterQueryResponse { //bool EncapsulatedSystem; //bool EnablePreflightInfo; bool ShowDetails(false); int MemThreshold; int DiskThreshold; int CpuThreshold; string MemThresholdType; string DiskThresholdType; [min_ver("1.13")] string PreflightProcessFilter; ESParray TpTargetClusters; }; ESPrequest TpClusterQueryRequest { TpQueryType Type; }; ESPresponse [exceptions_inline]TpClusterQueryResponse { [min_ver("1.08")] bool EnableSNMP; ESParray TpClusters; }; ESPrequest TpLogicalClusterQueryRequest { string EclServerQueue; }; ESPresponse [exceptions_inline] TpLogicalClusterQueryResponse { ESParray TpLogicalClusters; }; ESPrequest TpGroupQueryRequest { }; ESPresponse [exceptions_inline] TpGroupQueryResponse { ESParray TpGroups; }; ESPrequest TpClusterInfoRequest { //Type of Node the parent is.... string Name; }; ESPresponse [exceptions_inline,encode(0)] TpClusterInfoResponse { string Name; string WorkUnit; [min_ver("1.10")] ESParray TpQueues; }; SCMenum TpMachineType { TPMACHINECLUSTER }; ESPrequest [] TpMachineQueryRequest { //Type of Node the parent is.... TpMachineType Type; string Cluster; string OldIP; //Path to Parent within Dali(Encoded to prevent back-engineering) string Path; //installation path for corresponding component for monitoring processes string Directory; string LogDirectory; }; ESPresponse [exceptions_inline] TpMachineQueryResponse { bool EnablePreflightInfo; [min_ver("1.15")] bool HasThorSpareProcess; TpMachineType Type; string Cluster; string OldIP; string LogDirectory; //Path to Parent within Dali(Encoded to prevent back-engineering) //This is echoed back from request and is used for swap node. string Path; int MemThreshold; int DiskThreshold; int CpuThreshold; string MemThresholdType; string DiskThresholdType; [min_ver("1.13")] string PreflightProcessFilter; [min_ver("1.08")] bool EnableSNMP; ESParray TpMachines; }; ESPrequest TpServiceQueryRequest { //Path to Parent within Dali(Encoded to prevent back-engineering) string Type; }; ESPresponse [nil_remove, exceptions_inline] TpServiceQueryResponse { int MemThreshold; int DiskThreshold; int CpuThreshold; [min_ver("1.07")] bool EncapsulatedSystem; [min_ver("1.08")] bool EnableSNMP; [min_ver("1.13")] string PreflightProcessFilter; string MemThresholdType; string DiskThresholdType; ESPstruct TpServices ServiceList; }; ESPrequest TpSetMachineStatusRequest { string MachinePath; string StatusValue; }; ESPresponse [exceptions_inline] TpSetMachineStatusResponse { bool TpSetMachineStatusResult; }; ESPrequest TpSwapNodeRequest { string Cluster; string OldIP; string NewIP; }; ESPresponse [exceptions_inline] TpSwapNodeResponse { bool TpSwapNodeResult; }; ESPrequest [nil_remove] TpXMLFileRequest { string Name; }; ESPresponse [exceptions_inline] TpXMLFileResponse { [http_content("application/octet-stream")] binary thefile; }; ESPrequest [nil_remove] TpLogFileRequest { string Name; string Type; [min_ver("1.05")] string StartDate; [min_ver("1.05")] string EndDate; [min_ver("1.05")] int FirstRows; [min_ver("1.05")] int LastRows; [min_ver("1.05")] int FilterType(0); [min_ver("1.05")] bool Reversely(false); [min_ver("1.05")] bool Zip(false); [min_ver("1.05")] int PageNumber(0); [min_ver("1.05")] bool LoadData(false); }; ESPresponse [exceptions_inline] TpLogFileResponse { [min_ver("1.05")] string Name; [min_ver("1.05")] string Type; [min_ver("1.05")] string StartDate; [min_ver("1.05")] string EndDate; [min_ver("1.05")] int LastHours; [min_ver("1.05")] int FirstRows; [min_ver("1.05")] int LastRows; [min_ver("1.05")] bool Reversely; [min_ver("1.05")] bool Zip; [min_ver("1.05")] int FilterType; [min_ver("1.05")] string LogData; [min_ver("1.05")] bool HasDate(true); [min_ver("1.05")] int64 FileSize; [min_ver("1.05")] int64 PageFrom(0); [min_ver("1.05")] int64 PageTo; [min_ver("1.05")] int PageNumber(0); [min_ver("1.05")] int PrevPage(-1); [min_ver("1.05")] int NextPage(-1); [min_ver("1.06")] int TotalPages; [http_content("application/octet-stream")] binary thefile; }; ESPrequest [nil_remove] SystemLogRequest { string Name; string Type; int Zip; }; ESPresponse [exceptions_inline] SystemLogResponse { [http_content("application/octet-stream")] binary thefile; }; SCMenum OS_TYPE { OS_WINDOWS, OS_SOLARIS, OS_LINUX }; ESPrequest TpGetComponentFileRequest { string CompType; string CompName; string NetAddress; string Directory; string FileType; int OsType; string PlainText; }; ESPresponse [exceptions_inline] TpGetComponentFileResponse { [http_content("application/octet-stream")] binary FileContents; }; ESPservice [noforms, version("1.17"), default_client_version("1.17"), exceptions_inline("./smc_xslt/exceptions.xslt")] WsTopology { ESPuses ESPStruct TpBinding; ESPuses ESPstruct TpCluster; ESPuses ESPstruct TpDali; ESPuses ESPstruct TpDfuServer; ESPuses ESPstruct TpDropZone; ESPuses ESPstruct TpEclAgent; ESPuses ESPstruct TpEclServer; ESPuses ESPstruct TpEspServer; ESPuses ESPstruct TpFTSlave; ESPuses ESPstruct TpDkcSlave; ESPuses ESPstruct TpGroup; ESPuses ESPstruct TpLdapServer; ESPuses ESPStruct TpLogicalCluster; ESPuses ESPstruct TpMachine; ESPuses ESPstruct TpMySqlServer; ESPuses ESPStruct TpQueryType; ESPuses ESPStruct TpSashaServer; ESPuses ESPstruct TpServices; ESPuses ESPstruct TpTargetCluster; ESPmethod [resp_xsl_default("/esp/xslt/targetclusters.xslt")]TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse); ///ESPmethod TpTargetClusterQuery(TpTargetClusterQueryRequest, TpTargetClusterQueryResponse); ESPmethod [resp_xsl_default("/esp/xslt/topology.xslt")] TpClusterQuery(TpClusterQueryRequest, TpClusterQueryResponse); ESPmethod TpLogicalClusterQuery(TpLogicalClusterQueryRequest, TpLogicalClusterQueryResponse); ESPmethod TpGroupQuery(TpGroupQueryRequest, TpGroupQueryResponse); ESPmethod [resp_xsl_default("/esp/xslt/machines.xslt")] TpMachineQuery(TpMachineQueryRequest, TpMachineQueryResponse); ESPmethod [resp_xsl_default("/esp/xslt/cluster_info.xslt")] TpClusterInfo(TpClusterInfoRequest, TpClusterInfoResponse); ESPmethod [resp_xsl_default("/esp/xslt/services.xslt")] TpServiceQuery(TpServiceQueryRequest, TpServiceQueryResponse); ESPmethod TpSetMachineStatus(TpSetMachineStatusRequest, TpSetMachineStatusResponse); ESPmethod TpSwapNode(TpSwapNodeRequest, TpSwapNodeResponse); ESPmethod TpXMLFile(TpXMLFileRequest, TpXMLFileResponse); ESPmethod [resp_xsl_default("/esp/xslt/tplog.xslt")] TpLogFile(TpLogFileRequest, TpLogFileResponse); ESPmethod [resp_xsl_default("/esp/xslt/tplogdisplay.xslt")] TpLogFileDisplay(TpLogFileRequest, TpLogFileResponse); ESPmethod TpGetComponentFile(TpGetComponentFileRequest, TpGetComponentFileResponse); ESPmethod SystemLog(SystemLogRequest, SystemLogResponse); }; SCMexportdef(WSWU); SCMapi(WSWU) IClientWsTopology *createWsTopologyClient();