Forum Discussion

nevetS_66718's avatar
nevetS_66718
Icon for Nimbostratus rankNimbostratus
Dec 17, 2007

Stumped. Blank Results

I'm trying to do something very simple - just get a list of pools.

 

 

The trouble is that I don't get any results. The sample LocalLBPool.pl doesn't return results, and neither do any of my own efforts.

 

 

Can anybody give me a clue as to what basic step I might be missing?

7 Replies

  • I'm wondering if my problem is that I do not have permissions sufficient to run these calls.

     

     

    When I go to the web interface, I can see the pools. I can view information about the members of the pools. I cannot change the status of the pools, nor create or remove members of the pools.

     

     

    I can run a few API calls and get results. Everything having to do with pools seems to return no data or errors.

     

     

    I am writing an application monitor that will disable a pool member should the application go down, and conversely enable a pool member should the application come back up.

     

     

    If I were to go to the F5 administrator today and verify permissions, is there a way to describe the permissions that I need clearly? I've been banging my head against a wall for a very long time and I would like to be able to describe my needs clearly.
  • If you have a read-only account, then you should be able to get results from the get_list() methods. If you turn on SOAP tracing, you can get the raw request/response output which can sometimes find the root cause of issues.

    use SOAP::Lite + trace => qw(method debug);

    As for permissions to be able to toggle states, you will need to either be an Operator or Administrator.

    -Joe

  • I did grab the raw xml and here is what I received:

            xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:y="http://www.w3.org/2001/XMLSchema"
            xmlns:iControl="urn:iControl"
            E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">        xmlns:m="urn:iControl:LocalLB/Pool">        s:type="A:Array"
            A:arrayType="y:string[0]">

    If I open my browser and go to: https://myf5server/tmui/Control/jspmap/tmui/locallb/pool/list.jsp?Filter=*

    I do see a list of 8 pools.

    When I turn on the trace info as you stated above, I receive the following:

    SOAP::Transport::new: ()
    SOAP::Serializer::new: ()
    SOAP::Deserializer::new: ()
    SOAP:arser::new: ()
    SOAP::Lite::new: ()
    SOAP::Transport::HTTP::Client::new: ()
    SOAP::Transport::new: ()
    SOAP::Serializer::new: ()
    SOAP::Deserializer::new: ()
    SOAP:arser::new: ()
    SOAP::Lite::new: ()
    SOAP::Transport::HTTP::Client::new: ()
    SOAP::Lite::call: ()
    SOAP::Serializer::envelope: ()
    SOAP::Serializer::envelope: get_list
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Data::new: ()
    SOAP::Transport::HTTP::Client::send_receive: HTTP::Request=HASH(0x86fe744)
    SOAP::Transport::HTTP::Client::send_receive: POST https://myf5server:443/iControl/iControlPortal.cgi HTTP/1.1
    Accept: text/xml
    Accept: multipart/*
    Accept: application/soap
    Authorization: Basic **REMOVED**
    Content-Length: 428
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "urn:iControl:LocalLB/Poolget_list"  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x8a18a10)
    SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 200 OK
    Connection: close
    Date: Mon, 17 Dec 2007 19:13:59 GMT
    Server: Apache
    Content-Type: text/xml; charset="UTF-8"
    Client-Date: Sun, 16 Dec 2007 14:00:53 GMT
    Client-Peer: 171.64.11.167:443
    Client-Response-Num: 1
    Client-SSL-Cert-Issuer: /C=--/ST=WA/L=Seattle/O=MyCompany/OU=1177687786/CN=bigip/emailAddress=root@bigip
    Client-SSL-Cert-Subject: /C=--/ST=WA/L=Seattle/O=MyCompany/OU=1177687786/CN=bigip/emailAddress=root@bigip
    Client-SSL-Cipher: DHE-RSA-AES256-SHA
    Client-SSL-Warning: Peer certificate not verified
    Client-Transfer-Encoding: chunked
    Set-Cookie: BIGIPAuthCookie=**REMOVED**; path=/; Secure;
    SOAPServer: EasySoap++/0.6        xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:y="http://www.w3.org/2001/XMLSchema"
            xmlns:iControl="urn:iControl"
            E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">        xmlns:m="urn:iControl:LocalLB/Pool">        s:type="A:Array"
            A:arrayType="y:string[0]">
    $VAR1 = '        xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:y="http://www.w3.org/2001/XMLSchema"
            xmlns:iControl="urn:iControl"
            E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">        xmlns:m="urn:iControl:LocalLB/Pool">        s:type="A:Array"
            A:arrayType="y:string[0]">
    ';
    SOAP::Data::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP::Data::DESTROY: ()
    SOAP:arser::DESTROY: ()
    SOAP::Transport::DESTROY: ()
    SOAP::Transport::HTTP::Client::DESTROY: ()
    SOAP::Serializer::DESTROY: ()
    SOAP::Deserializer::DESTROY: ()
    SOAP::Lite::DESTROY: ()
    SOAP::Transport::HTTP::Client::DESTROY: ()
    SOAP::Lite::DESTROY: ()
    SOAP::Deserializer::DESTROY: ()
    SOAP:arser::DESTROY: ()
    SOAP::Transport::DESTROY: ()
    SOAP::Serializer::DESTROY: ()
    SOAP::Data::DESTROY: ()
  • I sent a message asking about permissions to our network people. The response I received is as follows:

     

     

    The ... account does have "operator" permissions to the ... partition. This should allow you to view the pools and pool members as well as bring the members up and down.

     

     

    USER myusername

     

    | ROLE operator PARTITION ...
  • You mentioned the word "partition". If your BIG-IP is configued using admin partitions and your objects are located in another partition than "Common", you will need to add a call in your code to Management :: Partition :: set_active_partition() for your user given user name. The client will default to the "Common" partition unless you explicitly specify that you want access to another partition.

     

     

    http://devcentral.f5.com/Wiki/default.aspx/iControl/Management__Partition__set_active_partition.html

     

    Click here

     

     

     

    -Joe
  • How do I set the active partition in Perl through the SOAP::Lite module interface?

     

     

    Thanks,
  • Nevermind. I found it here:

     

    http://devcentral.f5.com/Default.aspx?tabid=53&forumid=1&postid=19464&view=topic