获取 指定pool的成员状态,返回2维数组

use BigIP::iControl;
use Data::Dumper;
my $ic = BigIP::iControl->new(
server => '2.2.30.2',
username => 'vvv',
password => '12345678',
port => '443',
proto => 'https'
);
my @out=();
my @pool=('/Common/ESB_pool','/Common/XinDai_web_pool','/Common/XinDai_svr_pool','/Common/AAAApingtai_7002_pool');
#my @pool=('/Common/ESB_pool');
foreach $pool (@pool){
my @tmp=();

#Returns all pool member stati for the specified pool as an array of MemberObjectStatus objects.

#print $ic->get_pool_member_object_status ($pool);
#print "
";

my @a=@{$ic->get_pool_member_object_status ($pool)};
#print @a;
#print "
";
#print Dumper(@a);
foreach $a (@a){
   #print $a."
";
   #print Dumper($a);
   #print @{$a};
   #print "
";
   foreach $b (@{$a}){
      #print $b;
	  #print "
";
	  my %h1=%{$b};
          foreach my $key1 (sort  keys %h1){
	  print '--------------hash1BEGIN--------------'."
";
	  #foreach $key1 (keys %h1) {
           print  "$key1=>$h1{$key1}
";
		   my %h2=%{$h1{$key1}};
  	   print '--------------hash2BEGIN--------------'."
";
               foreach my $key2 (sort  keys %h2){
                  print  "$key2=>$h2{$key2}
";
                  #sleep 5;
	          if ($key2 eq 'address'){
		      $address=$h2{'address'};
		  };
                  if ($key2 eq 'port'){
                     $port=$h2{'port'};
                  };
		   #print  '<'."$pool=>$address:$port=>$key2=>$h2{$key2}
".'>';
			   
		  if  ($key2 eq 'availability_status'){
	            if ($h2{$key2} eq 'AVAILABILITY_STATUS_RED'){
		     print "$pool=>$address:$port=>$key2=>$h2{$key2}=>RED
";
     	             push @tmp,"$pool=>$address:$port=>$key2=>$h2{$key2}=>RED";
			};
	         if ($h2{$key2} eq 'AVAILABILITY_STATUS_GREEN'){
		      print "$pool=>$address:$port=>$key2=>$h2{$key2}=>GREEN
";
		      push @tmp,"$pool=>$address:$port=>$key2=>$h2{$key2}=>GREEN";
							};
			  };
			  };
     print '-------------hash2END--------------'."
";	  
		   #sleep 5;
   };
     print '-------------hash1END--------------'."
";
    };
   };
 $i++;
 push @out,[@tmp];
};
print '---------------out----------------------'."
";
print @out;
print "
";
print $out[0][0];
print "
";
print $out[1][0];
print "
";
print $out[2][0];
print "
";
print Dumper(@out);
print "
";
foreach $a (@out){
  print $a;
  print "
";
  foreach $b (@{$a}){
    print $b;
    print "
";
  };
};

原文地址:https://www.cnblogs.com/hzcya1995/p/13348978.html