From: Markus Armbruster <armbru@redhat.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
kwolf@redhat.com, qemu-devel@nongnu.org, lcapitulino@redhat.com,
arei.gonglei@huawei.com, pbonzini@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v2] qom: Implement qom-get HMP command
Date: Mon, 19 Sep 2016 11:18:05 +0200 [thread overview]
Message-ID: <87d1k0l036.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20160914104831.GH28399@redhat.com> (Daniel P. Berrange's message of "Wed, 14 Sep 2016 11:48:31 +0100")
"Daniel P. Berrange" <berrange@redhat.com> writes:
> On Wed, Sep 14, 2016 at 11:30:06AM +0100, Dr. David Alan Gilbert wrote:
>> * Markus Armbruster (armbru@redhat.com) wrote:
>> > "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> writes:
>> >
>> > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>> > >
>> > > This started off as Andreas Färber's implementation from
>> > > March 2015, but after feedback from Paolo morphed into
>> > > using the json output which handles structs reasonably.
>> > >
>> > > Use with qom-list to find the members of an object.
>> > >
>> > > (qemu) qom-get /backend/console[0]/device/vga.rom[0] size
>> > > 65536
>> > > (qemu) qom-get /machine smm
>> > > "auto"
>> > > (qemu) qom-get /machine rtc-time
>> > > {
>> > > "tm_year": 116,
>> > > "tm_sec": 0,
>> > > "tm_hour": 9,
>> > > "tm_min": 46,
>> > > "tm_mon": 8,
>> > > "tm_mday": 6
>> > > }
>> > > (qemu) qom-get /machine frob
>> > > Property '.frob' not found
>> > >
>> > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>> >
>> > Ignorant question: how does qom-set deal with structs?
>> >
>> > I tried the obvious
>> >
>> > (qemu) qom-set /machine rtc-time abc
>> > Insufficient permission to perform this operation
>>
>> I don't think it does.
>
> Indeed it can't - qom_set ends up calling object_property_parse which
> uses string-input-visitor to parse the value, which can only handle
> scalars as the magic special case list-of-ints.
>
> To deal with compound properties would really require us to use a
> qdict_crumple + qmp_input_visitor combination, similar to how I've
> made -object and object_add be able to deal with compound properties.
HMP I/O formats are not ABI. We can use visitors in whatever way we
want, as long as we keep -get and -set consistent. The sane way to do
that is using the same kind of visitor for both, in its input and output
form, respectively.
Right now, qom-set uses the string input visitor. As long as it does
that, qom-get should use the string output visitor. Sadly, this pair of
visitors is quite limited ("does not implement support for visiting QAPI
structs, alternates, null, or arbitrary QTypes"). We can extend it to
cover more, or we can switch to another, less limited pair of visitors.
Can we agree on what to do so we can have qom-get sooner rather than
later? It doesn't have to be perfect, we can iterate.
next prev parent reply other threads:[~2016-09-19 9:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-06 10:18 [Qemu-devel] [PATCH v2] qom: Implement qom-get HMP command Dr. David Alan Gilbert (git)
2016-09-06 12:35 ` Andreas Färber
2016-09-06 13:08 ` Daniel P. Berrange
2016-09-06 13:33 ` Dr. David Alan Gilbert
2016-09-09 16:21 ` Markus Armbruster
2016-09-09 17:33 ` Daniel P. Berrange
2016-09-12 7:58 ` Markus Armbruster
2016-09-13 8:39 ` Markus Armbruster
2016-09-14 10:30 ` Dr. David Alan Gilbert
2016-09-14 10:48 ` Daniel P. Berrange
2016-09-19 9:18 ` Markus Armbruster [this message]
2016-09-19 9:54 ` Daniel P. Berrange
2016-09-19 11:54 ` Daniel P. Berrange
2016-09-19 12:00 ` Dr. David Alan Gilbert
2016-09-19 13:11 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d1k0l036.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=afaerber@suse.de \
--cc=arei.gonglei@huawei.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.