Forum Discussion

arjunnambiartc_'s avatar
arjunnambiartc_
Icon for Nimbostratus rankNimbostratus
Feb 26, 2015

Python bigsuds for Bigip 4.x

I have some very old legacy devices running on version 4.5.13 and I need to pull some information via Icontrol. Firstly does 4.x support Icontrol ? Python is my language of choice and i use the bigsuds library mostly for my work.I did the following :

 >>> import bigsuds
 >>> b = bigsuds.BIGIP(hostname = 'x.x.x.x',username = 'root', password ='password')
 >>> vlans = b.Networking.Interfaces.get_list()

 Traceback (most recent call last):
 File "", line 1, in 
 File "build/bdist.linux-x86_64/egg/bigsuds.py", line 313, in __getattr__
 File "build/bdist.linux-x86_64/egg/bigsuds.py", line 139, in _create_client
 bigsuds.ParseError: :12:2: mismatched tag
 Failed to parse wsdl. Is "Networking.Interfaces" a valid namespace?

What is the problem and how do i overcome it ?

  • Bigsuds is just a soap wrapper, so it should have some success. This should work:

    import bigsuds
    b = bigsuds.BIGIP(hostname = 'x.x.x.x',username = 'admin', password ='password')
    b.ITCMSystem.SystemInfo.get_product_info()
    
  • iControl changed between v4 and v9 as the entire underlying architecture was rewritten and the APIs had too many differences in them. The v4 interfaces referenced objects that were no longer available on v9. For dynamic languages like Perl, you can just change the namespace by prefixing them with ITCM (ie ITCMLocalLB) and using the methods documented in the WSDL or the v4 SDK download in the iControl wiki. I believe there are some perl examples in that SDK download that show how to use some of the v4 interfaces.

     

    -Joe