[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