Webservice setup and overview: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 191: | Line 191: | ||
Set outFile = fso.CreateTextFile("output.txt", True) | Set outFile = fso.CreateTextFile("output.txt", True) | ||
set http = CreateObject("Chilkat_9_5_0.Http") | set http = CreateObject("Chilkat_9_5_0.Http") | ||
success = http.UnlockComponent(" | success = http.UnlockComponent("any code to test") | ||
If (success <> 1) Then | If (success <> 1) Then | ||
outFile.WriteLine(crypt.LastErrorText) | outFile.WriteLine(crypt.LastErrorText) | ||
Revision as of 15:48, 31 January 2019
Samples
Sample request from a Linux client using perl
Sample script (test.pl) #!/usr/bin/perl -w
use SOAP::Lite; # + qw/ trace /;
my $soap = SOAP::Lite
-> uri('urn:lvs')
-> proxy('http://ws.mylvs.foo/cgi-bin/lvs.cgi');
my $result = $soap->WHATISMYIP ();
unless ($result->fault) {
print $result->result();
} else {
print join ', ',
$result->faultcode,
$result->faultstring;
}
Sample script output (test.pl) root@myLVS-LinuxClient:/usr/local/dev/mylvs# perl test.pl 200 192.168.2.222 |
![]() |
Sample request from a Windows client using perl
|
To install the ActiveState Perl Module use: C:\Users\Administrator\Documents\lvs> ppm install Soap-Lite Sample script (test.pl): #!/usr/bin/perl -w
use SOAP::Lite; # + qw/ trace /;
my $soap = SOAP::Lite
-> uri('urn:lvs')
-> proxy('http://ws.mylvs.foo/cgi-bin/lvs.cgi');
my $result = $soap->WHATISMYIP ();
unless ($result->fault) {
print $result->result();
} else {
print join ', ',
$result->faultcode,
$result->faultstring;
}
Sample script output (test.pl): C:\Users\Administrator\Documents\lvs>perl test.pl 200 192.168.2.221 |
![]() |
Sample request from a Windows client using cscript with MSXML
Set xmlReq = CreateObject("MSXML2.DOMDocument.6.0")
request="<SOAP-ENV:Envelope xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance' "
request = request & "xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' "
request = request & "xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' "
request = request & "xmlns:xsd='http://www.w3.org/1999/XMLSchema' "
request = request & "SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>"
request = request & "<SOAP-ENV:Body><mylvs:WHATISMYIP xmlns:mylvs='urn:lvs'/>"
'request = request & "<c-gensym3 xsi:type='xsd:string'>192.168.xx.yy</c-gensym3>" 'alternative param
request = request & "</SOAP-ENV:Body></SOAP-ENV:Envelope>"
xmlReq.loadXML request 'load our request
Set xmlRes = CreateObject("MSXML2.XMLHTTP.6.0")
xmlRes.open "POST", "http://ws.mylvs.foo/cgi-bin/lvs.cgi"
xmlRes.send (xmlReq)
while xmlRes.readyState <> 4
wend
Set objDispatch = xmlRes.responseXML
set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.Load objDispatch
WScript.Echo xmlDoc.selectSingleNode("//WHATISMYIPResponse").text
Sample script output (test.vbs): C:\Users\Administrator\Documents\lvs>cscript test.vbs //Nologo 200 192.168.2.221 |
![]() |
Sample request from a Windows client using cscript with SoapLite
|
Soaplite is a smart way to handle our request. It still runs as 32bit application on Server2012
Soaplite must be registered with the 32bit part of regsvr: C:\Users\Administrator\Documents\lvs>c:\Windows\SysWOW64\regsvr32.exe Lite.dll Sample script (test-lite.vbs): strSoapProxy="http://ws.mylvs.foo/cgi-bin/lvs.cgi" strSoapURI = "urn:lvs" set wso = CreateObject("SOAP.Lite").new("proxy", strSoapProxy, "uri",strSoapURI ) 'wscript.echo wso.WHATISMYIP(strBLA).result 'Sample for an alternative parameter wscript.echo wso.WHATISMYIP().result Sample script output (test-lite.vbs): C:\Users\Administrator\Documents\lvs>c:\Windows\SysWOW64\cscript.exe test-lite.vbs //nologo 200 192.168.2.221 |
![]() |
Webservice functions
Note: Additional steps were required to setup webservices, see more details here:
- The LVS-WFE Webservice offers the following functions:
| Function | Optional Paramter | Description | Return |
|---|---|---|---|
| REQUESTWEIGHTDOWN | String (a ip address like 192.168.1.1) | Request to set the host offline | String (Code(d{3}) Description |
| REQUESTWEIGHTUP | String (a ip address like 192.168.1.1) | Request to set the host online | String (Code(d{3}) Description |
| REQUESTWEIGHTSTATUS | String (a ip address like 192.168.1.1) | Request the current status | String (Code(d{3}) Description |
| REQUESTGROUPINFORMATION | String (a ip address like 192.168.1.1) | Request the current group configuration | String (Code(d{3}) Description |
| WHATISMYIP | - | - | - |
Return Codes
- The LVS-WFE Webservice returns the following codes:
- Log Categories
- 2nn = Success
- 3nn = Logical Errors
- 4nn = Functional Errors
- 5nn = Access or Request Errors
| Code | Description | Return |
|---|---|---|
| 200 | Request accepted (function defined message) | True |
| 300 | WeigthDown in process | False |
| 301 | TurnOff in process | False |
| 302 | Another maintenance service is already running | False |
| 304 | Host has already maintenance running, please come back later | False |
| 305 | Host has already ip renew set, please come back later | False |
| 306 | Host has already ip renewed a few minutes ago, please come back later | False |
| 307 | Host not found in inventory | False |
| 407 | IP renew is not set (debugging only) | False |
| 408 | Function not supported (debugging only) | False |
| 500 | Access denied or Request Refused | False |
| 501 | Access denied - update failed, contact IT-Admin | False |
Alternative example using Chilkat
'https://www.example-code.com/vbscript/http_soapPost11.asp Dim fso, outFile Set fso = CreateObject("Scripting.FileSystemObject") Set outFile = fso.CreateTextFile("output.txt", True) set http = CreateObject("Chilkat_9_5_0.Http") success = http.UnlockComponent("any code to test") If (success <> 1) Then outFile.WriteLine(crypt.LastErrorText) outFile.WriteLine("unlock failed.") WScript.Quit End If set soapXml = CreateObject("Chilkat_9_5_0.Xml") soapXml.Tag = "soap:Envelope" success = soapXml.AddAttribute("soap:encodingStyle","http://schemas.xmlsoap.org/soap/encoding/") success = soapXml.AddAttribute("xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/") success = soapXml.AddAttribute("xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/") success = soapXml.AddAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema") success = soapXml.AddAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance") success = soapXml.UpdateAttrAt("Body|REQUESTWEIGHTSTATUS",1,"xmlns","urn:lvs") outFile.WriteLine(soapXml.GetXml()) set req = CreateObject("Chilkat_9_5_0.HttpRequest") req.HttpVerb = "POST" req.SendCharset = 0 req.AddHeader "Content-Type","text/xml; charset=utf-8" req.AddHeader "SOAPAction","urn:lvs#REQUESTWEIGHTSTATUS" req.Path = "/cgi-bin/lvs.cgi" success = req.LoadBodyFromString(soapXml.GetXml(),"utf-8") 'http.SessionLogFilename = "httpSessionLog.txt" ' resp is a Chilkat_9_5_0.HttpResponse Set resp = http.SynchronousRequest("ws.hhlvs.intern",80,0,req) If (http.LastMethodSuccess = 0) Then outFile.WriteLine(http.LastErrorText) Else set xmlResponse = CreateObject("Chilkat_9_5_0.Xml") success = xmlResponse.LoadXml(resp.BodyStr) outFile.WriteLine(xmlResponse.AccumulateTagContent("s-gensym3","nothing")) End If outFile.Close
- Note: The webservice requires mylvsmon to run

