[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] QAPI magician wanted ...
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] QAPI magician wanted ... |
Date: |
Thu, 12 Oct 2017 18:29:43 +0200 |
On Thu, 12 Oct 2017 08:17:16 -0500
Eric Blake <address@hidden> wrote:
> On 10/12/2017 07:38 AM, Igor Mammedov wrote:
> > On Thu, 12 Oct 2017 13:28:26 +0100
> > "Daniel P. Berrange" <address@hidden> wrote:
> >
> >> On Thu, Oct 12, 2017 at 02:21:53PM +0200, Igor Mammedov wrote:
> >>>
> >>> I'm working on introducing QMP command to set numa mappings
> >>> via QMP interface at runtime instead of CLI.
> >>>
> >>> I'd prefer to reuse NumaOptions for parsing input,
> >>> but I can't wrap my head around QAPI magic.
> >>>
> >>> So far I've added new command in qapi-schema.json:
> >>>
> >>> {
> >>> 'command': 'set-numa-node',
> >>>
> >>> 'data': {'cmd': 'NumaOptions'}
> >>>
> >>> }
> >>
> >> I don't see any point in the extra level of nesting you have here, vs
> >> using NumaOptions as the data directly eg
> >>
> >> {
> >> 'command': 'set-numa-node',
> >> 'data': 'NumaOptions'
> >> }
> > I've tried that, it doesn't compile
> > 'data' for command 'set-numa-node' cannot use union type 'NumaOptions'
>
> { 'command': 'set-numa-node', 'boxed': true,
> 'data': 'NumaOptions' }
>
> To use a union directly as the command (which is a GOOD idea), you have
> to tell the generator to pass it as a boxed item to the
> qmp_set_numa_node function, rather than as exploded parameters, since
> the generator can't explode parameters from a union..
Thanks for suggestion,
it works and I don't need extra nesting anymore.
> >> I think the union gets flattenned - ie you probably want
> >>
> >> { "execute": "set-numa-node", "arguments": { "cmd": { "type": "node",
> >> "nodeid": 1 } } }
> > thanks, that works for me
> >
> >>
> >> Though with my suggestion above you could get it to just
> >>
> >> { "execute": "set-numa-node", "arguments": { "type": "node", "nodeid":
> >> 1 } }
>
> Yes, I'd prefer this form without the extra nesting.
>
>