PowerShell PoolMember Ratio And Priority
Problem this snippet solves:
This sample PowerShell script illustrates how to use the methods in the LocalLB::Pool interface to get and set the Ratio and Priority for a Pool Member.
Note, this example uses the new pool member methods in the LocalLB Pool interface introduced in BIG-IP v11.0
Code :
#---------------------------------------------------------------------------- # The contents of this file are subject to the "END USER LICENSE AGREEMENT # FOR F5 Software Development Kit for iControl"; you may not use this file # except in compliance with the License. The License is included in the # iControl Software Development Kit. # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # The Original Code is iControl Code and related documentation # distributed by F5. # # The Initial Developer of the Original Code is F5 Networks, Inc. # Seattle, WA, USA. Portions created by F5 are Copyright (C) 1996-2012 # F5 Networks, Inc. All Rights Reserved. iControl (TM) is a registered # trademark of F5 Networks, Inc. # # Alternatively, the contents of this file may be used under the terms # of the GNU General Public License (the "GPL"), in which case the # provisions of GPL are applicable instead of those above. If you wish # to allow use of your version of this file only under the terms of the # GPL and not to allow others to use your version of this file under the # License, indicate your decision by deleting the provisions above and # replace them with the notice and other provisions required by the GPL. # If you do not delete the provisions above, a recipient may use your # version of this file under either the License or the GPL. #---------------------------------------------------------------------------- param ( $BIGIP = $null, $User = $null, $Pass = $null, $Pool = $null, $Member = $null, $Ratio = $null, $Priority = $null ) #------------------------------------------------------------------------- # function Show-Usage #------------------------------------------------------------------------- function Show-Usage() { Write-Host @" Usage: PoolMemberRatioPriority.ps1 BIGIP User Pass Pool Member Ratio Priority Examples .\PoolMemberRatioPriority.ps1 -BIGIP bigip -User user -Pass pass : list pools .\PoolMemberRatioPriority.ps1 -BIGIP bigip -User user -Pass pass -Member ipport : list pool members .\PoolMemberRatioPriority.ps1 -BIGIP bigip -User user -Pass pass -Member ipport -Ratio 5 : set member ratio to 5 .\PoolMemberRatioPriority.ps1 -BIGIP bigip -User user -Pass pass -Member ipport -Priority 3 : set member priority to 3 "@ exit; } #---------------------------------------------------------------------------- function Do-Initialize() #---------------------------------------------------------------------------- { if ( (Get-PSSnapin | Where-Object { $_.Name -eq "iControlSnapIn"}) -eq $null ) { Add-PSSnapIn iControlSnapIn } $success = Initialize-F5.iControl -HostName $BIGIP -Username $User -Password $Pass; return $success; } function Parse-AddressPort() { param($Value); $tokens = $Value.Split(":"); $r = New-Object iControl.CommonAddressPort; $r.address = $tokens[0]; $r.port = $tokens[1]; $r; } function Get-Pools() { (Get-F5.iControl).LocalLBPool.get_list(); } function Get-PoolMembers() { param( $Pool = $null ); $MemberListAofA = (Get-F5.iControl).LocalLBPool.get_member_v2( @($Pool) ); $MemberListA = $MemberListAofA[0]; $MemberListA; } function Get-PoolMemberDetails() { param( $Pool = $null, $Member = $null ); $AddrPort = Parse-AddressPort $Member; $RatioAofA = (Get-F5.iControl).LocalLBPool.get_member_ratio( @($Pool), @( @($AddrPort) ) ); $PriorityAofA = (Get-F5.iControl).LocalLBPool.get_member_priority( @($Pool), @( @($AddrPort) ) ); $ratio = $RatioAofA[0][0]; $priority = $PriorityAofA[0][0]; "Pool '$Pool' member '$Member' ratio '$ratio' priority '$priority'"; } function Set-PoolMemberDetails() { param( $Pool = $null, $Member = $null, $Ratio = $null, $Priority = $null ); $AddrPort = Parse-AddressPort $Member; if ( $null -ne $Ratio ) { (Get-F5.iControl).LocalLBPool.set_member_ratio( @($Pool), @( @($AddrPort) ), @($Ratio) ); } if ( $null -ne $Priority ) { (Get-F5.iControl).LocalLBPool.set_member_priority( @($Pool), @( @($AddrPort) ), @($Priority) ); } } #------------------------------------------------------------------------- # Main Application Logic #------------------------------------------------------------------------- if ( ($BIGIP -eq $null) -or ($User -eq $null) -or ($Pass -eq $null) ) { Show-Usage; } if ( Do-Initialize ) { if ( $Pool -eq $null ) { # List Pools Get-Pools; } elseif ( $Member -eq $null ) { # List Pool Members Get-PoolMembers -Pool $Pool; } elseif ( ($Ratio -eq $null) -and ($Priority -eq $null) ) { # List Pool Member Details Get-PoolMemberDetails -Pool $Pool -Member $Member; } else { # Set Ratio and/or Priority Set-PoolMemberDetails -Pool $Pool -Member $Member -Ratio $Ratio -Priority $Priority; Get-PoolMemberDetails -Pool $Pool -Member $Member; } } else { Write-Error "ERROR: iControl subsystem not initialized" }
Published Mar 09, 2015
Version 1.0CodeCentral_194
Cirrus
Joined May 05, 2019
CodeCentral_194
Cirrus
Joined May 05, 2019
- Jhonatan_305563Nimbostratus
Is IT Works if the pool and members in different partitions?