Red Hat Bugzilla – Bug 1081932
the return value of API virNodeDevice.listCaps() is not correct
Last modified: 2015-03-05 02:33:28 EST
Description of problem: the reture value of API virNodeDevice.listCaps() is not correct Version-Release number of selected component: libvirt-1.1.1-29.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. find one rhel7 host, and check the libvirt python API # python Python 2.7.5 (default, Feb 11 2014, 07:46:25) [GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import libvirt >>> conn = libvirt.open('') >>> node_obj = conn.nodeDeviceLookupByName('pci_0000_00_19_0') >>> node_capabilities = node_obj.listCaps() 2. check the return value of API virNodeDevice.listCaps(), it's NULL. >>> print node_capabilities [] 3. find one rhel6 host, run the same scenario, it will return the expect value. ...... >>> print node_capabilities ['pci'] Actual result: As step 2 Expected results: The return value should not be NULL, should be samilar with step 3. Additional info: Check the python API on rhel6 and rhel7, it's same.
Fixed by commit 15a173fc13b4a16707a0d88b17a8a631791a4083 Author: Jincheng Miao <jmiao@redhat.com> CommitDate: 2014-03-29 06:51:10 +0100 Fix virNodeDeviceListCaps always returns empty virNodeDeviceListCaps will always return empty for a pci nodedevice, actually it should return 'pci'. It is because the loop variable ncaps isn't increased. Introduced by commit be2636f. https://bugzilla.redhat.com/show_bug.cgi?id=1081932 Signed-off-by: Jincheng Miao <jmiao@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com> git describe: v1.2.3-rc1-9-g15a173f
Verify it as follows. The result is expected. Move its status to VERIFIED. # rpm -q libvirt libvirt-python libvirt-1.2.8-8.el7.x86_64 libvirt-python-1.2.8-5.el7.x86_64 # cat test.py import libvirt conn = libvirt.open('') nodedev = conn.nodeDeviceLookupByName('pci_0000_00_19_0') node_capabilities = nodedev.listCaps() print node_capabilities # python test.py ['pci']
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2015-0323.html