
On Tue, Mar 27, 2007 at 12:45:13PM +0100, Richard W.M. Jones wrote:
Following on from this thread: https://www.redhat.com/archives/libvir-list/2007-March/thread.html#00341
The first attachment is a patch which changes the generated Python bindings so that they always raise an exception when an underlying error occurs in the C libvirt library.
The second attachment is for information only (not to be applied) - it shows the differences in the generated file libvirtclass.py. I have checked each of these changes by hand against both the libvirt.c interface description and the C implementation of the Python bindings (libvir.c and libvirt-py.c), and each change seems correct.
I have _not_ tested this against virt-manager. It is quite possible that virt-manager will cease to work if it wasn't checking the return values from affected functions carefully. I'll check this later today and supply a patch (to virt-manager) if necessary.
I have some additional questions about the Python bindings, but I'll put those in a separate thread.
That makes sense, my only worry is about the effect in applications, but it's really cleaner from a Python viewpoint to raise exceptions there, and fix application code when it's not too late. I guess someone using for example RHEL5 and updating their libvirt would also update python-virtinst and virt-manager accordingly. Let's apply this, the earlier it's fixed the smaller the collateral damages ! thanks a lot, especially for going though the rather tortuous generator.py code ... Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/