[libvirt] [python PATCH] generator.py: add mapping for VIR_DOMAIN_QEMU_AGENT_COMMAND_*

Pavel Hrdina phrdina at redhat.com
Thu Nov 28 09:50:38 UTC 2019


On Thu, Nov 28, 2019 at 10:44:31AM +0100, Peter Krempa wrote:
> On Thu, Nov 28, 2019 at 09:38:18 +0100, Pavel Hrdina wrote:
> > Libvirt commit <95f5ac9ae52455e9da47afc95fa31c9456ac27ae> changed the
> > VIR_DOMAIN_QEMU_AGENT_COMMAND_* enum values to use different enum values
> > instead of direct numbers.  We need to translate it back.
> > 
> > Traceback (most recent call last):
> >   File "generator.py", line 2143, in <module>
> >     qemuBuildWrappers(sys.argv[1])
> >   File "generator.py", line 2008, in qemuBuildWrappers
> >     items.sort(key=lambda i: (int(i[1]), i[0]))
> >   File "generator.py", line 2008, in <lambda>
> >     items.sort(key=lambda i: (int(i[1]), i[0]))
> > ValueError: invalid literal for int() with base 10: 'VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK'
> > 
> > Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> > ---
> >  generator.py | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/generator.py b/generator.py
> > index 913dab8..3352521 100755
> > --- a/generator.py
> > +++ b/generator.py
> > @@ -261,6 +261,12 @@ def lxc_enum(type, name, value):
> >  def qemu_enum(type, name, value):
> >      if type not in qemu_enums:
> >          qemu_enums[type] = {}
> > +    if value == 'VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK':
> 
> These are not qemu specific. Shouldn't this go into 'enum' ?

They are defined in include/libvirt/libvirt-domain.h but used in
include/libvirt/libvirt-qemu.h for
virDomainQemuAgentCommandTimeoutValues enum.

The issue here is that the generator.py parses libvirt-qemu-api.xml
where the value for VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK is
VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK so we need to translate that
value to corresponding number.  Ideally the generator.py would figure
out this automatically by looking into libvirt-api.xml but that would
require rewriting it.

Pavel

> 
> > +        value = -2
> > +    elif value == 'VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_DEFAULT':
> > +        value = -1
> > +    elif value == 'VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_NOWAIT':
> > +        value = 0
> >      if onlyOverrides and name not in qemu_enums[type]:
> >          return
> >      qemu_enums[type][name] = value
> > -- 
> > 2.23.0
> > 
> > --
> > libvir-list mailing list
> > libvir-list at redhat.com
> > https://www.redhat.com/mailman/listinfo/libvir-list


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20191128/0c0e294e/attachment-0001.sig>


More information about the libvir-list mailing list