[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs |
Date: |
Wed, 22 Feb 2012 18:25:26 -0200 |
On Wed, 22 Feb 2012 11:35:26 -0600
Anthony Liguori <address@hidden> wrote:
> On 02/22/2012 10:12 AM, Jeff Cody wrote:
> > On 02/22/2012 09:53 AM, Anthony Liguori wrote:
> >> On 02/20/2012 11:31 AM, Jeff Cody wrote:
> >>> The QAPI scripts allow for generating commands that receive parameter
> >>> input consisting of a list of custom structs, but the QMP input paramter
> >>> checking did not support receiving a qlist as opposed to a qdict for
> >>> input.
> >>
> >> What are you trying to send on the wire? Something like
> >>
> >> {"execute": "foo", "arguments": [ "a", "b", "c" ]}
> >>
> >> ?
> >>
> >> That's not valid per the QMP protocol. "arguments" must always be a QMP
> >> dictionary.
> >>
> >
> > Not a bare list like that (perhaps my wording was poor), but rather an
> > array of
> > custom structs, that contain QMP dicts. In this particular case:
> >
> > {"execute": "blockdev-group-snapshot-sync", "arguments": [{ "device":
> > "ide-hd0","snapshot-file":"/some/place/my-image","format": "qcow2" }]}
> >
> > When specifying this in the schema JSON file as shown below[1], the QAPI
> > scripts
> > generate the marshaller & visitor functions that handle everything
> > correctly.
> > The monitor code, however, could not deal with the QList container for the
> > input
> > parameters, prior to passing the data to the generated functions.
> >
> >
> > [1] JSON schema definition:
> >
> > { 'type': 'SnapshotDev',
> > 'data': {'device': 'str', 'snapshot-file': 'str', '*format': 'str' } }
> >
> > { 'command': 'blockdev-group-snapshot-sync',
> > 'data': { 'dev': [ 'SnapshotDev' ] } }
>
>
> This will end up looking like:
>
> { "execute": "blockdev-group-snapshot-sync",
> "arguments": { "dev": [{"device": "ide-hd0"....}] } }
>
> Which should work as expected in QMP. HMP argument validation doesn't handle
> arguments of lists but IMHO, it's time to kill that code.
>
> Luiz, what do you think?
I don't think the code can just be dropped (if that's what you meant), as there
are some features on top of it, like auto-completion, suffix support (G, M, k,
etc),
but it certainly can be improved.
Also note that QMP does argument validation too, which is unfortunate enough to
be based on HMP's, and it probably has to be adapted too (actually, maybe you
can
use the O type for lists...).
- [Qemu-devel] [PATCH 0/3] Group Live Snapshots, Jeff Cody, 2012/02/20
- [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Jeff Cody, 2012/02/20
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Anthony Liguori, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Jeff Cody, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Anthony Liguori, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Eric Blake, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Anthony Liguori, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Jeff Cody, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Jeff Cody, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs,
Luiz Capitulino <=
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Anthony Liguori, 2012/02/22
- Re: [Qemu-devel] [PATCH 1/3] qapi: Allow QMP/QAPI commands to have array inputs, Luiz Capitulino, 2012/02/22
[Qemu-devel] [PATCH 3/3] qapi: Introduce blockdev-query-group-snapshot-failure, Jeff Cody, 2012/02/20
[Qemu-devel] [PATCH 2/3] qapi: Introduce blockdev-group-snapshot-sync command, Jeff Cody, 2012/02/20