Hi, all,
I am the beginner to use suds.
Now I encoutnter one problem when using suds to send operation request to VMWare VSphere Server. May I get your help on this issue.
I couldnt' use suds to construct the argument to be used by VMWare ESX functton "RetrieveServiceContent".
The parameter xml should be "<_this type="ServiceInstance">ServiceInstance</_this>".
How can I use suds to construct this kind of function parameter?
I pasted my script, error output, wsdl. Here
~~~~~~~~~~~~~~~~~~~~-Python Script begin-------------------------------------------------------------
mor._type='ServiceInstance'
_sjc=client.service.RetrieveServiceContent(mor)
print _sjc
~~~~~~~~~~~~~~~~~~~~Python script end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~Error Msg begin~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(ManagedObjectReference){
_type = ""
}
DEBUG:suds.client:sending to (
https://10.204.211.1/sdk)
message:
<SOAP-ENV:Envelope xmlns:ns0="urn:vim25" xmlns:xsi="
http://www.w3.org/2001/XMLSc
hema-instance" xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns0:RetrieveServiceContent>
<ns0:_this xsi:type="ServiceInstance"/>
</ns0:RetrieveServiceContent>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
DEBUG:suds.client:headers = {'SOAPAction': u'"urn:vim25/4.0"', 'Content-Type': '
text/xml'}
ERROR:suds.client:<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="urn:vim25" xmlns:xsi="
http://www.w3.org/2001/XMLSc
hema-instance" xmlns:SOAP-ENV="
http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns0:RetrieveServiceContent>
<ns0:_this xsi:type="ServiceInstance"/>
</ns0:RetrieveServiceContent>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
DEBUG:suds.client:http failed:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault><faultcode>ServerFaultCode</faultcode><faultstring>type</faultstr
ing><detail><InvalidRequestFault xmlns="urn:vim25" xsi:type="InvalidRequest"></I
nvalidRequestFault></detail></soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Traceback (most recent call last):
File "C:\Project\wsdl\test.py", line 42, in <module>
_sjc=client.service.RetrieveServiceContent(mor)
File "C:\Python26\lib\site-packages\suds-0.3.8-py2.6.egg\suds\client.py", line
537, in __call__
return client.invoke(args, kwargs)
File "C:\Python26\lib\site-packages\suds-0.3.8-py2.6.egg\suds\client.py", line
597, in invoke
result = self.send(msg)
File "C:\Python26\lib\site-packages\suds-0.3.8-py2.6.egg\suds\client.py", line
632, in send
result = self.failed(binding, e)
File "C:\Python26\lib\site-packages\suds-0.3.8-py2.6.egg\suds\client.py", line
683, in failed
r, p = binding.get_fault(reply)
File "C:\Python26\lib\site-packages\suds-0.3.8-py2.6.egg\suds\bindings\binding
.py", line 235, in get_fault
raise WebFault(p, faultroot)
suds.WebFault: Server raised fault: 'type'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---------------------------------------------------------------------------------------
----------------------------------------WSDL - ManagedObjectReference-------------------------------------
- <complexType name="ManagedObjectReference">
- <extension base="xsd:string">
<attribute name="type" type="xsd:string" />
</extension>
</simpleContent>
</complexType>
----------------------------------------------------------------------------------------------------------------------------
------------------------------------- WSDL -Function RetrieveServiceContent------------------------
- <complexType name="RetrieveServiceContentRequestType">
<element name="_this" type="vim25:ManagedObjectReference" />
</sequence>
</complexType>
<element name="RetrieveServiceContent" type="vim25:RetrieveServiceContentRequestType" />
- <element name="RetrieveServiceContentResponse">
<element name="returnval" type="vim25:ServiceContent" />
</sequence>
</complexType>
</element>
-------------------------------------------------------------------------------------------------------------