I upgraded from ZSI 2.0 to the latest CVS in order to fix a couple of serialization bugs which were causing me problems. The upgrade fixed the bugs, but my client script to interface with VMware vCenter now fails with a different error:
-----
...
File "/opt/thinlinc/modules/thinlinc/VimService_client.py", line 61, in RetrieveProperties
response = self.binding.Receive(RetrievePropertiesResponseMsg.typecode)
File "/opt/thinlinc/modules/ZSI/client.py", line 536, in Receive
return _Binding.Receive(self, replytype, **kw)
File "/opt/thinlinc/modules/ZSI/client.py", line 461, in Receive
reply = self.ps.Parse(tc)
File "/opt/thinlinc/modules/ZSI/parse.py", line 326, in Parse
return how.parse(self.body_root, self)
File "/opt/thinlinc/modules/ZSI/TCcompound.py", line 196, in parse
value = what.parse(c_elt, ps)
File "/opt/thinlinc/modules/ZSI/TCcompound.py", line 196, in parse
value = what.parse(c_elt, ps)
File "/opt/thinlinc/modules/ZSI/TCcompound.py", line 196, in parse
value = what.parse(c_elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 1381, in parse
pyobj = Any().parse_into_dict_or_list(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 545, in parse_into_dict_or_list
v.append((str(c_elt.localName), self.__class__(**self.kwargs).parse(c_elt, ps)))
File "/opt/thinlinc/modules/ZSI/TC.py", line 577, in parse
return self.parse_into_dict_or_list(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 545, in parse_into_dict_or_list
v.append((str(c_elt.localName), self.__class__(**self.kwargs).parse(c_elt, ps)))
File "/opt/thinlinc/modules/ZSI/TC.py", line 550, in parse
(ns,type) = self.checkname(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 201, in checkname
return self.checktype(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 219, in checktype
ps.Backtrace(elt))
ZSI.EvaluateException: Malformed type attribute (bad NS)
[Element trace: /soapenv:Envelope/soapenv:Body/RetrievePropertiesResponse/returnval/propSet[3]/val/hardware/device[1]]
-----
This only happens when calling the RetrieveProperties method, and didn't happen with ZSI 2.0.
I notice that the Binding class in client.py now has a 'namespace' argument, whereas it didn't in 2.0 - do I need to be passing anything extra somewhere? The SOAP trace is massive so I won't post it here unless someone needs it.
Any ideas?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I upgraded from ZSI 2.0 to the latest CVS in order to fix a couple of serialization bugs which were causing me problems. The upgrade fixed the bugs, but my client script to interface with VMware vCenter now fails with a different error:
-----
...
File "/opt/thinlinc/modules/thinlinc/VimService_client.py", line 61, in RetrieveProperties
response = self.binding.Receive(RetrievePropertiesResponseMsg.typecode)
File "/opt/thinlinc/modules/ZSI/client.py", line 536, in Receive
return _Binding.Receive(self, replytype, **kw)
File "/opt/thinlinc/modules/ZSI/client.py", line 461, in Receive
reply = self.ps.Parse(tc)
File "/opt/thinlinc/modules/ZSI/parse.py", line 326, in Parse
return how.parse(self.body_root, self)
File "/opt/thinlinc/modules/ZSI/TCcompound.py", line 196, in parse
value = what.parse(c_elt, ps)
File "/opt/thinlinc/modules/ZSI/TCcompound.py", line 196, in parse
value = what.parse(c_elt, ps)
File "/opt/thinlinc/modules/ZSI/TCcompound.py", line 196, in parse
value = what.parse(c_elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 1381, in parse
pyobj = Any().parse_into_dict_or_list(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 545, in parse_into_dict_or_list
v.append((str(c_elt.localName), self.__class__(**self.kwargs).parse(c_elt, ps)))
File "/opt/thinlinc/modules/ZSI/TC.py", line 577, in parse
return self.parse_into_dict_or_list(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 545, in parse_into_dict_or_list
v.append((str(c_elt.localName), self.__class__(**self.kwargs).parse(c_elt, ps)))
File "/opt/thinlinc/modules/ZSI/TC.py", line 550, in parse
(ns,type) = self.checkname(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 201, in checkname
return self.checktype(elt, ps)
File "/opt/thinlinc/modules/ZSI/TC.py", line 219, in checktype
ps.Backtrace(elt))
ZSI.EvaluateException: Malformed type attribute (bad NS)
[Element trace: /soapenv:Envelope/soapenv:Body/RetrievePropertiesResponse/returnval/propSet[3]/val/hardware/device[1]]
-----
This only happens when calling the RetrieveProperties method, and didn't happen with ZSI 2.0.
I notice that the Binding class in client.py now has a 'namespace' argument, whereas it didn't in 2.0 - do I need to be passing anything extra somewhere? The SOAP trace is massive so I won't post it here unless someone needs it.
Any ideas?