Forum Discussion
Puli
Nimbostratus
Oct 26, 2008How to set a node to Forced down in perl
Hi,
am using the perl toggel script to enable disable a member in a pool with perl.
Below is a code snippet in perl for function disable pool member
---------------------------------------------------------------
sub disablePoolMember()
{
my ($pool_name, $member_def) = (@_);
------------------------------------------------------------------------
Split apart node:port
------------------------------------------------------------------------
($sNodeIP, $sNodePort) = split(/:/, $member_def, 2);
if ( "" eq $sNodePort )
{
$sNodePort = "0";
}
$member = { address => $sNodeIP, port => $sNodePort };
--------------------------------------------------------------------
Query enabled state for given Node:port
--------------------------------------------------------------------
$pool_member_state = &getPoolMemberState($pool_name, $member);
----------------------------------------------------------------
Set the state to be toggled to.
----------------------------------------------------------------
my $toggleState = "STATE_DISABLED";
my $toggleState1 = "AVAILABILITY_DOWN";
if ( "STATE_DISABLED" eq $pool_member_state )
{
$toggleState = "STATE_ENABLED";
print "$cus_time : ";
print "Pool Member $sNodeIP is aleady in Disabled state. No Action taken.\n"
}
elsif ( "STATE_ENABLED" eq $pool_member_state )
{
$toggleState = "STATE_DISABLED";
}
else
{
die("Couldn't find member $member_def in pool $pool_name\n");
}
$MemberSessionState =
{
member => $member,
session_state => $toggleState,
monitor_state => $toggleState
};
push @MemberSessionStateList, $MemberSessionState;
push @MemberSessionStateLists, [@MemberSessionStateList];
----------------------------------------------------------------
Enable the state.
----------------------------------------------------------------
$soapResponse =
$PoolMember->set_session_enabled_state
(
SOAP::Data->name ( pool_names => ( [$pool_name] ) ),
SOAP::Data->name ( session_states => [@MemberSessionStateLists] )
);
&checkResponse($soapResponse);
print "$cus_time : ";
print "Pool Member $pool_name {$sNodeIP:$sNodePort} state set from '$pool_member_state' to '$toggleState'\n";
}
----------------------------------------------------------------------
Am trying to set option "Forced Offline (Only active connections
allowed)".
Am setting monitor_State above but it does no select that option when verified in UI.
How can make so it select "Forced Offline" instead of "Disabled"
Any help is greatly appreciated.
Ven.
- Here's a mapping of the three-way toggle state in the GUI to the two iControl methods for controlling state (set_monitor_state, and set_session_enabled_state).
Enabled (All traffic allowed):
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects