On 11/25/2013 08:55 AM, Don Dugger wrote:
I'm basing this on code inspection so I could be wrong but if you look
at the Python interface code for libvirt_virDomainSetSchedulerParameters
it checks the return value from virDomainSetSchedulerParameters and,
if it is <0, then the Pythong code returns -1, without raising an
exception.
We have two layers of python code. The libvirt-override.c layer returns
None/-1 if a libvirt error is present, then the generated layer turns
that into a python exception to the end user. Look at the generated
libvirt.py for a lot of examples of code that does:
if ret == -1: raise libvirtError ('... failed')
for anything where the C code fails with a -1, and does:
if ret is None: raise libvirtError ('... failed')
for anything where the C code fails with NULL.
The bug that we are fixing here is that we were returning -1 instead of
None for C code that fails with NULL, so the generated wrapper was not
properly throwing a libvirtError.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org