If you're using powershell you can try this:
Initialize Snapin
if ( (Get-PSSnapin | Where-Object { $_.Name -eq "iControlSnapIn"}) -eq $null ){
Add-PSSnapIn iControlSnapIn
}
Add a custom class with properties matching the object you got before
Add-Type @'
public class Member
{
public string Pool;
public string Address;
public string Port;
public string Name;
public string Availability;
public string Enabled;
public string Status;
}
'@
Function Get-Pool-Members {
Param([string]$BigIP, [string]$User, [string]$Password, [string]$Partition="Common")
Declare variables
$ObjMembers = @()
$NodeDict = @{}
Connect to the BigIP
$Success = Initialize-F5.iControl -HostName $BigIP -Username $User -Password $Password
Get an iControl Handle
$F5 = Get-F5.iControl
Change Partition
$F5.ManagementPartition.set_active_partition($Partition)
Get Pool Lists, statuses, nodes etc
$PoolList = $f5.LocalLBPool.get_list()
$Poolmembers = $f5.LocalLBPool.get_member_v2($PoolList)
$PoolMemberstatuses = $F5.LocalLBPool.get_member_object_status($PoolList, $Poolmembers)
$NodeList = $F5.LocalLBNodeAddressV2.get_list()
$NodeIPList = $f5.LocalLBNodeAddressV2.get_address($NodeList)
Save the nodes in a dictionary for convenient access
for($i=0;$i -lt ($NodeList.Count);$i++){
$NodeDict.Add($NodeList[$i], $NodeIPList[$i])
}
for($i=0;$i -lt ($PoolList.Count);$i++){
for($x=0;$x -lt ($PoolMembers[$i].Count);$x++){
Create a new temporary object of the member class
$objTempMember = New-Object Member
Populate the object
$objTempMember.Pool = $PoolList[$i]
$objTempMember.name = $PoolMembers[$i][$x].address
$objTempMember.Address = $NodeDict[$objTempMember.name]
$objTempMember.Port = $PoolMembers[$i][$x].port
$objTempMember.Availability = $PoolMemberstatuses[$i][$x].availability_status
$objTempMember.Enabled = $PoolMemberstatuses[$i][$x].enabled_status
$objTempMember.Status = $PoolMemberstatuses[$i][$x].status_description
Add the object to a list
$ObjMembers += $objTempMember
}
}
Return the object list
Return $ObjMembers
}
$poolmembers = Get-Pool-Members -BigIP "10.10.10.1" -User "User" -Password "Password" -Partition "Common"
$poolmembers | where-object { $_.name -eq "/Common/Poolname" } | select Pool
There's some additional information in $poolmembers that you don't really need, but that's how I'd do it.
/Patrik