using System;
using System.Runtime.Remoting;
using System.Xml.Serialization;
using System.Web.Services;
namespace NSConfig {
public class ClientService : NSConfigService
{
private static string cookie = null;
/* override the getWebRequest to send cookie */
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest) base.GetWebRequest(uri);
if (cookie != null)
{
req.Headers.Add("Set-Cookie", cookie);
}
return req;
}
/* override the getWebResponse to get the cookie */
protected override System.Net.WebResponse GetWebResponse(System.Net.WebRequest req)
{
System.Net.HttpWebResponse rep = (System.Net.HttpWebResponse) base.GetWebResponse(req);
if (rep.Headers["Set-Cookie"] != null)
{
cookie = rep.Headers["Set-Cookie"];
}
return rep;
}
public ClientService()
{
this.Url = "http:;
}
public ClientService(string servername)
{
this.Url = "http:+servername+"/soap";;
}
}
class lb_spillover
{
static ClientService client=null;
[STAThread]
static void Main(string[] args)
{
if ( args.Length < 3)
{
Console.WriteLine("Usage: getConfig <NS IP> username password");
return;
}
string serverip = args[0];
string username = args[1];
string password = args[2];
try {
Console.WriteLine("\nConnecting to server "+serverip+" ............\n");
client = new ClientService(serverip);
client.CookieContainer = new System.Net.CookieContainer();
simpleResult result = client.login(username,password) ;
Console.WriteLine("login : "+result.message);
result = client.enablensfeature(featureEnum.LB);
Console.WriteLine("enablensfeature LB : " + result.message);
result = client.addservice("svc1",null,"10.102.3.81",servicetypeEnum.HTTP,80,0xFFFFFFFF,cachtypeEnum.VALNOTSET,enabledisabledEnum.VALNOTSET);
Console.WriteLine("addservice svc1 : " + result.message);
result = client.addservice("svc2",null,"10.102.3.82",servicetypeEnum.HTTP,80,0xFFFFFFFF,cachtypeEnum.VALNOTSET,enabledisabledEnum.VALNOTSET);
Console.WriteLine("addservice svc2 : " + result.message);
result = client.addservice("svc_backup",null,"10.102.3.83",servicetypeEnum.HTTP,80,0xFFFFFFFF,cachtypeEnum.VALNOTSET,enabledisabledEnum.VALNOTSET);
Console.WriteLine("addservice svc_backup : " + result.message);
getserviceResult getserviceresult1 = client.getservice(null,false,false);
Console.WriteLine("getservice null : " + getserviceresult1.message);
if ( (getserviceresult1.List != null) && (getserviceresult1.List.Length > 0)) {
for(int i =0 ; i < getserviceresult1.List.Length;i++) {
service obj;
obj = (service) getserviceresult1.List[i];
Console.WriteLine( obj.name + "\t" + obj.all + "\t" + obj.internaL + "\t" + obj.servername + "\t" + obj.servicetype + "\t" + obj.serviceconftpye + "\t" + obj.port + "\t" + obj.value + "\t" + obj.cleartextport + "\t" + obj.gslb + "\t" + obj.cachetype + "\t" + obj.maxclient + "\t" + obj.maxreq + "\t" + obj.cacheable + "\t" + obj.cip + "\t" + obj.cipheader + "\t" + obj.usip + "\t" + obj.sc + "\t" + obj.weight + "\t" + obj.sp + "\t" + obj.failedprobes + "\t" + obj.clttimeout + "\t" + obj.totalprobes + "\t" + obj.svrtimeout + "\t" + obj.totalfailedprobes + "\t" + obj.serverid + "\t" + obj.cka + "\t" + obj.tcpb + "\t" + obj.cmp + "\t" + obj.maxbandwidth + "\t" + obj.accessdown + "\t" + obj.svrstate + "\t" + obj.ipaddress + "\t" + obj.monitorname + "\t" + obj.monthreshold + "\t" + obj.monstate + "\t" + obj.monstatcode + "\t" + obj.responsetime + "\t" + obj.downstateflush + "\t" + obj.statechangetimesec + "\t" + obj.statechangetimemsec + "\t" + obj.timesincelaststatechange + "\t" + obj.tickssincelaststatechange + "\t" + obj.scpolicyname + "\t" + obj.dospolicyname + "\t" );
}
}
result = client.addlbvserver("vlb_primary",vservicetypeEnum.HTTP,"10.102.3.101",80,0xFFFFFFFF,enabledisabledEnum.VALNOTSET,null);
Console.WriteLine("addlbvserver vlb_primary : " + result.message);
result = client.addlbvserver("vlb_backup",vservicetypeEnum.HTTP,"10.102.3.103",80,0xFFFFFFFF,enabledisabledEnum.VALNOTSET,null);
Console.WriteLine("addlbvserver vlb_backup : " + result.message);
getvserverResult getvserverresult2 = client.getvserver(null);
Console.WriteLine("getvserver null : " + getvserverresult2.message);
if ( (getvserverresult2.List != null) && (getvserverresult2.List.Length > 0)) {
for(int i =0 ; i < getvserverresult2.List.Length;i++) {
vserver obj;
obj = (vserver) getvserverresult2.List[i];
Console.WriteLine( obj.name + "\t" + obj.insertvserveripport + "\t" + obj.vipheader + "\t" + obj.ipaddress + "\t" + obj.port + "\t" + obj.range + "\t" + obj.servicetype + "\t" + obj.value + "\t" + obj.type + "\t" + obj.state + "\t" + obj.effectivestate + "\t" + obj.status + "\t" + obj.cachetype + "\t" + obj.redirect + "\t" + obj.precedence + "\t" + obj.redirecturl + "\t" + obj.authentication + "\t" + obj.homepage + "\t" + obj.dnsvservername + "\t" + obj.domain + "\t" + obj.rule + "\t" + obj.policyname + "\t" + obj.hits + "\t" + obj.servicename + "\t" + obj.weight + "\t" + obj.cachevserver + "\t" + obj.backupvserver + "\t" + obj.priority + "\t" + obj.clttimeout + "\t" + obj.somethod + "\t" + obj.sopersistence + "\t" + obj.sothreshold + "\t" + obj.lbmethod + "\t" + obj.hashlength + "\t" + obj.dataoffset + "\t" + obj.datalength + "\t" + obj.netmask + "\t" + obj.groupname + "\t" + obj.m + "\t" + obj.persistencetype + "\t" + obj.cookiedomain + "\t" + obj.persistmask + "\t" + obj.persistencebackup + "\t" + obj.timeout + "\t" + obj.cacheable + "\t" + obj.pq + "\t" + obj.sc + "\t" + obj.sessionless + "\t" + obj.sopersistencetimeout + "\t" + obj.url + "\t" + obj.reuse + "\t" + obj.destinationvserver + "\t" + obj.via + "\t" + obj.flags + "\t" + obj.connfailover + "\t" + obj.casesensitive + "\t" + obj.redirectportrewrite + "\t" + obj.downstateflush + "\t" + obj.cookieipport + "\t" + obj.vserverid + "\t" + obj.version + "\t" );
}
}
result = client.bindlbvserver_service("vlb_primary","svc1",0xFFFFFFFF);
Console.WriteLine("bindlbvserver_service vlb_primary : " + result.message);
result = client.bindlbvserver_service("vlb_primary","svc2",0xFFFFFFFF);
Console.WriteLine("bindlbvserver_service vlb_primary : " + result.message);
result = client.bindlbvserver_service("vlb_backup","svc_backup",0xFFFFFFFF);
Console.WriteLine("bindlbvserver_service vlb_backup : " + result.message);
getvserverResult getvserverresult3 = client.getvserver("vlb_primary");
Console.WriteLine("getvserver vlb_primary : " + getvserverresult3.message);
if ( (getvserverresult3.List != null) && (getvserverresult3.List.Length > 0)) {
for(int i =0 ; i < getvserverresult3.List.Length;i++) {
vserver obj;
obj = (vserver) getvserverresult3.List[i];
Console.WriteLine( obj.name + "\t" + obj.insertvserveripport + "\t" + obj.vipheader + "\t" + obj.ipaddress + "\t" + obj.port + "\t" + obj.range + "\t" + obj.servicetype + "\t" + obj.value + "\t" + obj.type + "\t" + obj.state + "\t" + obj.effectivestate + "\t" + obj.status + "\t" + obj.cachetype + "\t" + obj.redirect + "\t" + obj.precedence + "\t" + obj.redirecturl + "\t" + obj.authentication + "\t" + obj.homepage + "\t" + obj.dnsvservername + "\t" + obj.domain + "\t" + obj.rule + "\t" + obj.policyname + "\t" + obj.hits + "\t" + obj.servicename + "\t" + obj.weight + "\t" + obj.cachevserver + "\t" + obj.backupvserver + "\t" + obj.priority + "\t" + obj.clttimeout + "\t" + obj.somethod + "\t" + obj.sopersistence + "\t" + obj.sothreshold + "\t" + obj.lbmethod + "\t" + obj.hashlength + "\t" + obj.dataoffset + "\t" + obj.datalength + "\t" + obj.netmask + "\t" + obj.groupname + "\t" + obj.m + "\t" + obj.persistencetype + "\t" + obj.cookiedomain + "\t" + obj.persistmask + "\t" + obj.persistencebackup + "\t" + obj.timeout + "\t" + obj.cacheable + "\t" + obj.pq + "\t" + obj.sc + "\t" + obj.sessionless + "\t" + obj.sopersistencetimeout + "\t" + obj.url + "\t" + obj.reuse + "\t" + obj.destinationvserver + "\t" + obj.via + "\t" + obj.flags + "\t" + obj.connfailover + "\t" + obj.casesensitive + "\t" + obj.redirectportrewrite + "\t" + obj.downstateflush + "\t" + obj.cookieipport + "\t" + obj.vserverid + "\t" + obj.version + "\t" );
}
}
getvserverResult getvserverresult4 = client.getvserver("vlb_backup");
Console.WriteLine("getvserver vlb_backup : " + getvserverresult4.message);
if ( (getvserverresult4.List != null) && (getvserverresult4.List.Length > 0)) {
for(int i =0 ; i < getvserverresult4.List.Length;i++) {
vserver obj;
obj = (vserver) getvserverresult4.List[i];
Console.WriteLine( obj.name + "\t" + obj.insertvserveripport + "\t" + obj.vipheader + "\t" + obj.ipaddress + "\t" + obj.port + "\t" + obj.range + "\t" + obj.servicetype + "\t" + obj.value + "\t" + obj.type + "\t" + obj.state + "\t" + obj.effectivestate + "\t" + obj.status + "\t" + obj.cachetype + "\t" + obj.redirect + "\t" + obj.precedence + "\t" + obj.redirecturl + "\t" + obj.authentication + "\t" + obj.homepage + "\t" + obj.dnsvservername + "\t" + obj.domain + "\t" + obj.rule + "\t" + obj.policyname + "\t" + obj.hits + "\t" + obj.servicename + "\t" + obj.weight + "\t" + obj.cachevserver + "\t" + obj.backupvserver + "\t" + obj.priority + "\t" + obj.clttimeout + "\t" + obj.somethod + "\t" + obj.sopersistence + "\t" + obj.sothreshold + "\t" + obj.lbmethod + "\t" + obj.hashlength + "\t" + obj.dataoffset + "\t" + obj.datalength + "\t" + obj.netmask + "\t" + obj.groupname + "\t" + obj.m + "\t" + obj.persistencetype + "\t" + obj.cookiedomain + "\t" + obj.persistmask + "\t" + obj.persistencebackup + "\t" + obj.timeout + "\t" + obj.cacheable + "\t" + obj.pq + "\t" + obj.sc + "\t" + obj.sessionless + "\t" + obj.sopersistencetimeout + "\t" + obj.url + "\t" + obj.reuse + "\t" + obj.destinationvserver + "\t" + obj.via + "\t" + obj.flags + "\t" + obj.connfailover + "\t" + obj.casesensitive + "\t" + obj.redirectportrewrite + "\t" + obj.downstateflush + "\t" + obj.cookieipport + "\t" + obj.vserverid + "\t" + obj.version + "\t" );
}
}
result = client.setlbvserver_backupvserver("vlb_primary","vlb_backup");
Console.WriteLine("setlbvserver_backupvserver vlb_primary : " + result.message);
result = client.setlbvserver_somethod("vlb_primary",spillovermethodsEnum.CONNECTION);
Console.WriteLine("setlbvserver_somethod vlb_primary : " + result.message);
result = client.setlbvserver_sothreshold("vlb_primary",1000);
Console.WriteLine("setlbvserver_sothreshold vlb_primary : " + result.message);
getvserverResult getvserverresult5 = client.getvserver("vlb_primary");
Console.WriteLine("getvserver vlb_primary : " + getvserverresult5.message);
if ( (getvserverresult5.List != null) && (getvserverresult5.List.Length > 0)) {
for(int i =0 ; i < getvserverresult5.List.Length;i++) {
vserver obj;
obj = (vserver) getvserverresult5.List[i];
Console.WriteLine( obj.name + "\t" + obj.insertvserveripport + "\t" + obj.vipheader + "\t" + obj.ipaddress + "\t" + obj.port + "\t" + obj.range + "\t" + obj.servicetype + "\t" + obj.value + "\t" + obj.type + "\t" + obj.state + "\t" + obj.effectivestate + "\t" + obj.status + "\t" + obj.cachetype + "\t" + obj.redirect + "\t" + obj.precedence + "\t" + obj.redirecturl + "\t" + obj.authentication + "\t" + obj.homepage + "\t" + obj.dnsvservername + "\t" + obj.domain + "\t" + obj.rule + "\t" + obj.policyname + "\t" + obj.hits + "\t" + obj.servicename + "\t" + obj.weight + "\t" + obj.cachevserver + "\t" + obj.backupvserver + "\t" + obj.priority + "\t" + obj.clttimeout + "\t" + obj.somethod + "\t" + obj.sopersistence + "\t" + obj.sothreshold + "\t" + obj.lbmethod + "\t" + obj.hashlength + "\t" + obj.dataoffset + "\t" + obj.datalength + "\t" + obj.netmask + "\t" + obj.groupname + "\t" + obj.m + "\t" + obj.persistencetype + "\t" + obj.cookiedomain + "\t" + obj.persistmask + "\t" + obj.persistencebackup + "\t" + obj.timeout + "\t" + obj.cacheable + "\t" + obj.pq + "\t" + obj.sc + "\t" + obj.sessionless + "\t" + obj.sopersistencetimeout + "\t" + obj.url + "\t" + obj.reuse + "\t" + obj.destinationvserver + "\t" + obj.via + "\t" + obj.flags + "\t" + obj.connfailover + "\t" + obj.casesensitive + "\t" + obj.redirectportrewrite + "\t" + obj.downstateflush + "\t" + obj.cookieipport + "\t" + obj.vserverid + "\t" + obj.version + "\t" );
}
}
result = client.setlbvserver_sopersistence("vlb_primary",enabledisabledEnum.ENABLED);
Console.WriteLine("setlbvserver_sopersistence vlb_primary : " + result.message);
result = client.setlbvserver_sopersistencetimeout("vlb_primary",3);
Console.WriteLine("setlbvserver_sopersistencetimeout vlb_primary : " + result.message);
result = client.setservice_maxclient("svc1",500);
Console.WriteLine("setservice_maxclient svc1 : " + result.message);
result = client.setservice_maxclient("svc2",500);
Console.WriteLine("setservice_maxclient svc2 : " + result.message);
result = client.setlbvserver_backupvserver("vlb_primary","vlb_backup");
Console.WriteLine("setlbvserver_backupvserver vlb_primary : " + result.message);
result = client.setlbvserver_somethod("vlb_primary",spillovermethodsEnum.DYNAMICCONNECTION);
Console.WriteLine("setlbvserver_somethod vlb_primary : " + result.message);
getvserverResult getvserverresult6 = client.getvserver("vlb_primary");
Console.WriteLine("getvserver vlb_primary : " + getvserverresult6.message);
if ( (getvserverresult6.List != null) && (getvserverresult6.List.Length > 0)) {
for(int i =0 ; i < getvserverresult6.List.Length;i++) {
vserver obj;
obj = (vserver) getvserverresult6.List[i];
Console.WriteLine( obj.name + "\t" + obj.insertvserveripport + "\t" + obj.vipheader + "\t" + obj.ipaddress + "\t" + obj.port + "\t" + obj.range + "\t" + obj.servicetype + "\t" + obj.value + "\t" + obj.type + "\t" + obj.state + "\t" + obj.effectivestate + "\t" + obj.status + "\t" + obj.cachetype + "\t" + obj.redirect + "\t" + obj.precedence + "\t" + obj.redirecturl + "\t" + obj.authentication + "\t" + obj.homepage + "\t" + obj.dnsvservername + "\t" + obj.domain + "\t" + obj.rule + "\t" + obj.policyname + "\t" + obj.hits + "\t" + obj.servicename + "\t" + obj.weight + "\t" + obj.cachevserver + "\t" + obj.backupvserver + "\t" + obj.priority + "\t" + obj.clttimeout + "\t" + obj.somethod + "\t" + obj.sopersistence + "\t" + obj.sothreshold + "\t" + obj.lbmethod + "\t" + obj.hashlength + "\t" + obj.dataoffset + "\t" + obj.datalength + "\t" + obj.netmask + "\t" + obj.groupname + "\t" + obj.m + "\t" + obj.persistencetype + "\t" + obj.cookiedomain + "\t" + obj.persistmask + "\t" + obj.persistencebackup + "\t" + obj.timeout + "\t" + obj.cacheable + "\t" + obj.pq + "\t" + obj.sc + "\t" + obj.sessionless + "\t" + obj.sopersistencetimeout + "\t" + obj.url + "\t" + obj.reuse + "\t" + obj.destinationvserver + "\t" + obj.via + "\t" + obj.flags + "\t" + obj.connfailover + "\t" + obj.casesensitive + "\t" + obj.redirectportrewrite + "\t" + obj.downstateflush + "\t" + obj.cookieipport + "\t" + obj.vserverid + "\t" + obj.version + "\t" );
}
}
result = client.logout();
Console.WriteLine("logout : " + result.message);
}
catch (Exception ex) {
Console.WriteLine( "Exception: "+ex.ToString());
}
}
}
}