Nov 13, 2013
iControl EM Proxy Issues
Hi All,
Trying to use the ruby f5-icontrol library to interact with Enterprise Manager's iControl proxy capability. So far I have had little luck. I have the following script, and it is functional ...
Are you able to retrieve the list of devices, through the get_devices() API? Or it's just the get_context_id() API that is failing?
Can you please try to call individually both of these APIs, just to make sure? (From the stack trace it looks like the failure could be with retrieving the array list corresponding to the devices, but I could be wrong).
Can you also make sure the f5-icontrol gem that you're using has the required APIs (in the Management.EM namespace) built-in?
If you inspect your f5-icontrol gem zip file, look for:
data.tar.gz -> lib -> wsdl -> Management.EM.wsdl -> get_context_id() metadata.gz -> metadata -> lib/wsdl/Management.EM.wsdl
The f5-icontrol gem that should have the required APIs can be downloaded at: https://devcentral.f5.com/labs/Ruby/f5-icontrol-11.3-gem.zip
The next I can think of could be an issue related to the SOAP serializer library that you're using (soap2r) and the way it serializes and names the SOAP data types involved (e.g. SOAP-ENC:xxx, xsd:string, etc.). I wonder if one of these types could not be properly resolved (as a valid namespace) by the ruby SOAP serializer.
It would be useful if you could enable a verbose trace to see the actual SOAP request/response vehiculated on the wire, between the ruby client and the EM/iControl Proxy. (Even a raw HTTP/tcpdump on the client side would help).
I would probably lean to my second assumption: SOAP serialization/deserialization issue, and probably with the get_devices() API, since it's returning a [complex] SOAP-ENC::arrayType.