Forum Discussion

Ramya_68133's avatar
Ramya_68133
Icon for Nimbostratus rankNimbostratus
Sep 12, 2013

get_member_v2 method perl code

I am looking for sample code in perl for get_member_v2 method to pull the pool member list.I would really appareciate if some one can give me inputs on that Appreciate your help Thanks

 

5 Replies

  • This Should get you going. I wrote this for the first time here, so it's not tested. Hopefully there aren't any bad typos...

    In the future, check out the iControl CodeShare for a lot of Perl examples. A list of perl specific examples can be found here: https://devcentral.f5.com/wiki/iControl.perl.ashx

    use SOAP::Lite
    use MIME::Base64
    
     BIG-IP address
    $bigip = "10.10.10.10";
    $user = "someuser";
    $pass = "somepass";
    
    sub SOAP::Transport::HTTP::Client::get_basic_credentials
    {
      return "$user" => "$pass";
    }
    
    $Pool = SOAP::Lite
      -> url("urn:iControl:LocalLB/Pool")
      -> proxy("https://$bigip/iControl/iControlPortal.cgi");
    
     Get list of pools
    my $soapResponse = $Pool->get_list();
    my @pool_list = @{$soapResponse->result};
    
    $soapResponse = $Pool.get_member_v2(
      SOAP::Data->name(pool_names => [@pool_list])
    );
    @AddressPortAofA = @{$soapResponse->result};
    
    for $i (0 .. $pool_list)
    {
      $pool = $pool_list[$i];
      print "+ POOL $pool";
      @AddressPortA = @{$AddressPortAofA[$i]};
      foreach $j (0 .. $AddressPortA)
      {
        $AddressPort = @AddressPortA[$j];
        $address = $AddressPort->{"address"};
        $port = $AddressPort->{"port"};
        print "|  ${address}:${port}";
      }
    }
    

    Hope this helps...

    -Joe

    • Joe_Pruitt's avatar
      Joe_Pruitt
      Icon for Cirrostratus rankCirrostratus
      My pleasure! If that worked for you, can you mark it as correct? Thanks!
    • Ramya_68133's avatar
      Ramya_68133
      Icon for Nimbostratus rankNimbostratus
      Thank you Joe, I just added one more get_object_status along with get_member method to get all address, port availability, status but its not pulling anything Any suggestion is greatly appreciated my $poollist = $LBPool->get_member_v2( SOAP::Data->name( pool_names => [$poolname] ) ); checkResponse($poollist); my @poolmemberdefinitionAofA = @{ $poollist->result }; my $soapResponse = $LBPool->get_member_object_status( SOAP::Data->name( pool_names => [$poolname], members => [@poolmemberdefinitionAofA] ) ); print $soapResponse; my %members; my @statusAofA = @{ $soapResponse->result }; my @statusA = @{ $statusAofA[0] }; foreach my $status (@statusA){ $members{ $status->{"address"}}= $status->{"port"}; $members{'enabled'} = {$status->{'enabled_status'}}; $members{'availability'} = {$status->{'availability'}}; } return \%members; }
    • Ramya_68133's avatar
      Ramya_68133
      Icon for Nimbostratus rankNimbostratus
      my $poollist = $LBPool->get_member_v2( SOAP::Data->name( pool_names => [$poolname] ) ); checkResponse($poollist); my @poolmemberdefinitionAofA = @{ $poollist->result }; my $soapResponse = $LBPool->get_member_object_status( SOAP::Data->name( pool_names => [$poolname], members => [@poolmemberdefinitionAofA] ) ); print $soapResponse; my %members; my @statusAofA = @{ $soapResponse->result }; my @statusA = @{ $statusAofA[0] }; foreach my $status (@statusA){ $members{ $status->{"address"}}= $status->{"port"}; $members{'enabled'} = {$status->{'enabled_status'}}; $members{'availability'} = {$status->{'availability'}}; } return \%members; }