On Wed, Feb 06, 2008 at 05:35:09PM -0500, Cole Robinson wrote: > Daniel P. Berrange wrote: > > On Wed, Feb 06, 2008 at 03:18:13PM -0500, Cole Robinson wrote: > >> Hi all, > >> > >> Looking at python/libvir.c, all the custom functions return VIR_PY_NONE > >> on error. This unfortunately doesn't map well to some of the > >> generated python bindings which expect an error val of -1. So if these > >> commands fail, no exception will be thrown at the python level. > >> (Ex. virDomainGetAutostart, virDomainGetVcpus and their python equiv.) > >> > >> I'm wondering where the fix should be: in python/libvir.c, changing > >> these error return values, or in the generator somewhere? > > > > The fix should be in the libvir.c file - I didn't write this custom > > bindings correctly. Simply remove the line > > > > if (c_retval < 0) > > return VIR_PY_NONE; > > > > So 'c_retval' will get propagated back to the pure python layer which > > will do the -1 check > > > > Regards, > > Dan. > > Hmm, I don't think any of the cases where there is an error actually > end up returning c_retval, its always python wrapped contents of > something passed by reference, so I don't know how that would work. > > The patch below seems to do the job: I tested it with the autostart > function on a xen domain (which errors as its not supported) and it > now correctly throws an exception from the python bindings. Okay, this is similar to changing a void public API to an int returning one, it makes sense, and should be no problem, patch is very clean, so great ! I applied it and commited it to CVS, thanks ! Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@xxxxxxxxxx | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list