Forum Discussion
upload_xml_profile_wsdl exception
Hi,
I'm trying to upload a WSDL file to associate with an XML profile in ASM, but getting an exception saying "The XML profile doesn't have a WSDL file".
This is my code:
import bigsuds
bigip = bigsuds.BIGIP(hostname='bigip-lab')
profile_name="Test_Profile"
policy_name="/Common/Dan_Test_Policy"
xml_file="/media/sf_VirtualBox/bigip/Device.svc"
filename="Device.wsdl"
contents = ''
with open(xml_file) as f:
contents = f.read()
result = bigip.ASM.Policy.upload_xml_profile_wsdl(policy_name, profile_name, filename, contents)And this is the exception being thrown:
dmarkhas@dmarkhas-VirtualBox:~/workspace/BigIP$ python policy.py
No handlers could be found for logger "suds.client"
Traceback (most recent call last):
File "policy.py", line 14, in
result = bigip.ASM.Policy.upload_xml_profile_wsdl(policy_name, profile_name, filename, contents)
File "/usr/local/lib/python2.7/dist-packages/bigsuds.py", line 416, in wrapped_method
result = method(*args, **kwargs)
File "build/bdist.linux-x86_64/egg/suds/client.py", line 542, in __call__
File "build/bdist.linux-x86_64/egg/suds/client.py", line 602, in invoke
File "build/bdist.linux-x86_64/egg/suds/client.py", line 649, in send
File "build/bdist.linux-x86_64/egg/suds/client.py", line 702, in failed
File "build/bdist.linux-x86_64/egg/suds/bindings/binding.py", line 265, in get_fault
bigsuds.ServerError: Server raised fault: 'Exception caught in ASM::urn:iControl:ASM/Policy::upload_xml_profile_wsdl()
Exception: Common::OperationFailed
primary_error_code : 0 (0x00000000)
secondary_error_code : 0
error_string : The XML profile doesn't have a WSDL file'Any idea what is missing? Has anyone been successful in uploading a schema file to an XML profile in ASM?
7 Replies
- What_Lies_Bene1
Cirrostratus
Does the wsdl file exist? Odd that the XML file has a preceding path but the wsdl doesn't. Perhaps drop all the file names to lower case, just in case.
Actually, it's probably that you are missing wsdl_ from two of the parameter names;
policy_name - String - The name of the policy. profile_name - String - The name of the XML profile. >>> wsdl_filename - String - The WSDL filename which will be attached to the XML profile. >>> wsdl_text - String - Dan_Markhasin_1
Nimbostratus
Yes, the file exists. The reason why xml_file has a full path is because Python opens the file to read its contents, so it needs to know where to find it, whereas wsdl_filename is (to my understanding) just a string to associate with the file contents on BigIP.
I don't think the names of the parameters matter, but I did try to rename them to match the documentation exactly - with no success. I don't understand what the exception "The XML profile doesn't have a WSDL file" means (of course it doesn't have a file yet, that's exactly what I'm trying to accomplish :-)), and there doesn't seem to be documentation about this error.
I'm wondering if anyone has succeeded to upload a WSDL file to an XML profile via API (either SOAP or REST)?
- What_Lies_Bene1
Cirrostratus
OK, fair enough. Do you need to call the os.path module perhaps?
- Dan_Markhasin_1
Nimbostratus
I don't think the problem is with the code (I implemented the same functionality in Perl with SOAP::Lite and got the same error). But after some more testing I discovered that the code works if there is already a WSDL file associated with the XML profile with the same name as the one I am trying to upload. For example, if I upload Device.wsdl to the XML Profile via the GUI and then run the Python script - it doesn't throw any errors and actually overwrites the contents of the file on the BigIP appliance. But if I run the exact same script just with a different wsdl_filename (that doesn't already exist), I get the error "The XML profile doesn't have a WSDL file".
Maybe I am missing something but I thought the entire purpose of this method was to allow to upload new WSDL files to the XML Profile.... O_o
- What_Lies_Bene1
Cirrostratus
Yep, pretty poor I'd agree. I've never found iControl 'friendly' where files are concerned.
- Dan_Markhasin_1
Nimbostratus
Well is there any alternative? I really have to find a way to upload the schemas automatically...
- What_Lies_Bene1
Cirrostratus
I'm sure F5 Support, or perhaps Professional Services would be happy to help.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
