On Tue, Oct 04, 2016 at 10:43:31AM +0200, Kashyap Chamarthy wrote: > Last night I was trying to check whether blockJobInfo() method will > raise an error when it returns 'None' in v1.2.5 libvirt Python bindings. > (Eric Blake confirmed on IRC: "the python bindings have, as a general > rule, always raised a libvirtError if the C binding code returns None"). > > Before asking on IRC, I built the bindings and the below is what I noticed. > > Let's first see what's in current Git master: > > $ less build/libvirt.py > [...] > def blockJobInfo(self, path, flags=0): > """Get progress information for a block job """ > ret = libvirtmod.virDomainGetBlockJobInfo(self._o, path, flags) > if ret is None: raise libvirtError ('virDomainGetBlockJobInfo() failed', dom=self) > return ret > [...] > > Now try to find out what is present in v1.2.5 by quickly building the > bindings for that tag: > > $ git checkout v1.2.5 > $ python setup.py build > > Hmm, once built, there's no blockJobInfo() method in build/libvirt.py! > (When I mentioned this on #virt, OFTC, Cole confirmed he could reproduce > the behavior, too. Not sure if it's a regression in v1.2.5.) I guess that your libvirt version which was used to generate libvirt-python bindings is too new for libvirt-python-v1.2.5. In general libvirt-python is build-able using libvirt with the same version or older. If you build libvirt-python with newer libvirt the result is undefined, so the build may fail or it may generate wrong files. In your case you have probably libvirt-v1.2.10 or newer, where libvirt.h file was split into separate header files and libvirt-python-v1.2.5 simply don't know about this change. Pavel
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list