vADC Forum

Reply
Occasional Contributor
Posts: 9
Registered: ‎07-20-2013
Accepted Solution

drain a server using a script

i am trying to use a perl script to drain a server on my test environment load balancer, the code is this:

#!/usr/bin/perl -w  
use SOAP::Lite 0.60;

my $admin_server = 'https://admin:XXXXXXXXXXXXXXXXXX@loadbalancer.ip:9090';XXXXXXXXXXXXXXXXXX@loadbalancer.ip:9090'; 
     
my $conn = SOAP::Lite 
  -> uri('https://admin:XXXXXXXXXXXXXXXXXXXXXXX@loadbalancer.ip:9090XXXXXXXXXXXXXXXXXXXXXXX@loadbalancer.ip:9090') 
  -> proxy("$admin_server/soap"); 
     
$conn = $conn->addDrainingNodes( ["myNewPool"], [["node.ip:8080"]] );

the script exits with no errors but as I go to the "Draining Nodes" list under "Activity" I cannot see node.ip draining.

where exactly am I failing ?

Occasional Contributor
Posts: 9
Registered: ‎07-20-2013

Re: drain a server using a script

this script is giving me a "Value isn't an array at ./serverdrain.pl line 14."
error
#!/usr/bin/perl -w
use SOAP::Lite 0.60;
# This is the url and password of the ZXTM admin server
# The pool to edit, and the nodes to drain
my $poolName = shift @ARGV;
my @theNodes = @ARGV;
# Create the SOAP Connection object
my $conn = SOAP::Lite
-> proxy("$admin_server/soap")
-> on_fault( sub {
my( $conn, $res ) = @_;
die ref $res?$res->faultstring:$conn->transport->status; } );
# Start the nodes draining
my $res = $conn->addDrainingNodes( [ $poolName ], [ @theNodes ] );
Contributor
Posts: 74
Registered: ‎10-03-2011

Re: Re: drain a server using a script

You seem to be missing a set of square braces in your soap call....


my $res = $conn->addDrainingNodes( [ $poolName ], [[ @theNodes ]] );


This works for me...


#!/usr/bin/perl -w


use SOAP::Lite 0.60;



$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;



# This is the url and password of the ZXTM admin server


my $admin_server = 'https://usernameSmiley Tongueassword@hostname:9090';


# The pool to edit, and the nodes to drain


my $poolName = shift @ARGV;


my @theNodes = @ARGV;


# Create the SOAP Connection object


my $conn = SOAP::Lite


-> ns('http://soap.zeus.com/zxtm/1.0/Pool/')


-> proxy("$admin_server/soap")


-> on_fault( sub {


my( $conn, $res ) = @_;


die ref $res?$res->faultstring:$conn->transport->status; } );


# Start the nodes draining


my $res = $conn->addDrainingNodes( [ $poolName ], [[ @theNodes ]] );


Cheers,

Mark

Occasional Contributor
Posts: 9
Registered: ‎07-20-2013

Re: Re: drain a server using a script

IT WOOOOOOORKS

thank you

you save my life !!!!!!!!!!!!!!!!!!!!

Occasional Contributor
Posts: 9
Registered: ‎07-20-2013

Re: Re: drain a server using a script

how can I give you points ?

New Contributor
Posts: 3
Registered: ‎01-14-2013

Re: Re: drain a server using a script

Hi Renato-

Thanks for marking Mark's response as correct! He received 10 points for his correct response to your question.

Thanks for using Splash!

Dave

Join the Community

Get quick and easy access to valuable resource designed to help you manage your Brocade Network.