[libvirt] [PATCH] python: fix about some of python binding APIs don't raise and exception

Guannan Ren gren at redhat.com
Mon Mar 18 11:49:48 UTC 2013


On 03/01/2013 06:03 PM, Guannan Ren wrote:
> 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 adding 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>
> ---
>   python/generator.py             |  10 ++--
>   python/libvirt-override-api.xml | 116 +++++++++++++++++++++-------------------
>   2 files changed, 66 insertions(+), 60 deletions(-)
>
>

     Any guy would like to review this bug-fixing patch?
     Thanks in advance.

     Guannan




More information about the libvir-list mailing list