mirror of
https://gitlab.com/libvirt/libvirt-python.git
synced 2025-12-07 04:23:47 +03:00
libvirt-0.10.2-25.el6
Resovles: https://bugzilla.redhat.com/show_bug.cgi?id=912170 (cherry picked from commit 4b143ab23173000d1afa258726be0ff38cf2b386) For example: >>> dom.memoryStats() libvir: QEMU Driver error : Requested operation is not valid:\ domain is not running There are six such python API functions like so. The root reason is that generator.py script checks the type of return value of a python stub function defined in libvirt-api.xml or libvirt-override-api.xml to see whether to add the raise clause or not in python wrapper code in libvirt.py. The type of return value is supposed to be C types. For those stub functions which return python non-integer data type like string, list, tuple, dictionary, the existing type in functions varies from each other which leads problem like this. Currently, in generator.py, it maintains a buggy whitelist for stub functions returning a list type. I think it is easy to forget adding new function name in the whitelist. This patch makes the value of type consistent with C type "char *" in libvirt-override-api.xml. For python, any of types could be printed as string, so I choose "char *" in this case. And the comment in xml could explain it when adding new function definition. <function name='virNodeGetCPUStats' file='python'> ... - <return type='virNodeCPUStats' info='...'/> + <return type='char *' info='...'/> ... </function> Conflicts: python/libvirt-override-api.xml *no virDomainGetJobStats and virNodeGetCPUMap APIs in RHEL6.5
libvirt Python Bindings README
==============================
Most of the libvirt python binding code is automatically generated
using the script generator.py, and the API description from
docs/libvirt-api.xml
Manually written files:
- libvirt-override.c: methods where the C binding needs to be hand crafted
- libvirt-override.py: global methods where the C and python bindings have different args
- libvirt-override-api.xml: methods where the auto-extracted API docs are not
suitable for python auto-generator. Overriding this if the method is going
into libvirt-override.c, but we still want auto-generated libvirt-override.py
- libvirt-override-virConnect.py: virConnect class methods
- typewrappers.h,.c: Python object wrappers for each libvirt C object
Auto-generated files:
- libvirt.py: The main python binding. Comprises auto-generated code, along
with contents from libvirt-override.py and libvirt-override-virConnect.py
- libvirt.c, libvirt.h: The C glue layer for the python binding. Comprises
auto-generated code, along with libvirt-override.c
- libvirt-export.c: List of auto-generated C methods, included into
the libvirt-override.c method table
Description
Languages
C
64.9%
Python
31%
Dockerfile
2.3%
Shell
1.7%