From: Markus Armbruster <armbru@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: "Daniel P. Berrange" <berrange@redhat.com>,
kwolf@redhat.com, qemu-devel@nongnu.org, arei.gonglei@huawei.com,
pbonzini@redhat.com, lcapitulino@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] [PATCH v2] qom: Implement qom-get HMP command
Date: Fri, 09 Sep 2016 18:21:15 +0200 [thread overview]
Message-ID: <87wpilm4ck.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20160906133349.GH2041@work-vm> (David Alan Gilbert's message of "Tue, 6 Sep 2016 14:33:49 +0100")
"Dr. David Alan Gilbert" <dgilbert@redhat.com> writes:
> * Daniel P. Berrange (berrange@redhat.com) wrote:
>> On Tue, Sep 06, 2016 at 11:18:06AM +0100, Dr. David Alan Gilbert (git) wrote:
>> > 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
>> > }
>>
>> I'm not really a fan of us exposing JSON in the HMP, as it rather
>> seems to defeat the purpose of using the HMP.
>
> Well as long as it's clear and easily readable by humans I'm OK about it;
> and I'm less fussed about it on the output side; JSON is much more painful
> to use as human typed input.
>
>> > --
>> > v2
>> > switched from using string-output-visitor to qobject_to_json_pretty,
>> > drop string-output-visitor patch.
>>
>> IIUC, you switched because string-output-visitor could not handle
>> complex types.
>>
>> I have previously written a text-output-visitor that could do
>> this correctly, since we have this exact same requirement for
>> 'qemu-info info' to print out the extra-block specific data
>> in human friendly format for the LUKS driver.
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg01727.html
>
> How close to going in is it? It looks from the comments that Eric
> is thinking about fixing string-output-visitor.
> I'm not clear why you'd want a text-output-visitor and a string-output-vistior.
Me neither.
In theory, we need two output visitors producing text, one for
machine-readable output (JSON), and the one for human-readable output.
For the latter, we use the string output visitor.
For the former, we first use the (badly named) QMP output visitor to
produce a QObject, which is then converted to JSON text by
qobject_to_json() or qobject_to_json_pretty().
Each of the two output visitors comes with a matching input visitor that
reads the same format.
To read JSON text, we first parse it into a QObject with
json_message_parser_init() & friends, which we then pass to the QMP
input visitor.
If I read Dan's cover letter correctly, the proposed text output visitor
competes with the string output visitor. Why not enhance or replace it?
>> With your example that ought to lead to output looking like
>>
>> (qemu) qom-get /machine rtc-time
>> tm_year: 116
>> tm_sec: 0
>> tm_hour: 9
>> tm_min: 46
>> tm_mon: 8
>> tm_mday: 6
>>
>> which i think is more suitable for the HMP.
>
> Yes, it's a little prettier; I'm not fussed either way - but I just want to
> make sure that we do end up with a qom-get; it's something I'd have found
> useful in the past and I know others would have, and the code for it was
> originally written by Andreas ~2.5 years ago - so if text-output-visitor is
> imminent then sure, but if it's not then I suggest we stick with this.
We can take qom-get as is and improve its output later.
next prev parent reply other threads:[~2016-09-09 16:21 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 [this message]
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
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=87wpilm4ck.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.