From: Markus Armbruster <armbru@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: qemu-devel <qemu-devel@nongnu.org>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Victor Toso de Carvalho" <victortoso@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Andrea Bolognani" <abologna@redhat.com>
Subject: Re: Notes on Generating Python signatures for QMP RPCs
Date: Fri, 04 Feb 2022 07:53:46 +0100 [thread overview]
Message-ID: <87ee4jcebp.fsf@pond.sub.org> (raw)
In-Reply-To: <CAFn=p-YiXcYkdHwqRCvQDKP3vYwv5u4CFnxMCcBGnzSyNF9zVw@mail.gmail.com> (John Snow's message of "Thu, 3 Feb 2022 16:14:28 -0500")
John Snow <jsnow@redhat.com> writes:
> On Thu, Feb 3, 2022 at 5:04 AM Markus Armbruster <armbru@redhat.com> wrote:
>> John Snow <jsnow@redhat.com> writes:
>> > On Thu, Jan 27, 2022 at 9:03 AM Markus Armbruster <armbru@redhat.com> wrote:
>> >> John Snow <jsnow@redhat.com> writes:
>
>> >> > (7) I have no idea what to do about functions that "may not return".
>> >> > The QGA stuff in particular, I believe, is prone to some weirdness
>> >> > that violates the core principles of the QMP spec.
>> >>
>> >> Yes.
>> >>
>> >> docs/interop/qmp-spec.txt dictates a command sends either a success or
>> >> an error response. Makes sense.
>> >>
>> >> QGA has a few commands that shut down the guest. How could such a
>> >> command send a success response? If it sends it before it initiates
>> >> shutdown, response transmission races with shutdown. The easy way out
>> >> is violating qmp-spec.txt. Thus, 'success-response': false. Just for
>> >> QGA.
>> >>
>> >
>> > Oh, whoops, I already have the information we need. O:-)
>> > (Assuming that 'success-response' is visible in the introspection data, anyway.
>>
>> qapi/introspect.json:
>>
>> ##
>> # @SchemaInfoCommand:
>> [...]
>> # TODO: @success-response (currently irrelevant, because it's QGA, not QMP)
>> #
>> # Since: 2.5
>> ##
>> { 'struct': 'SchemaInfoCommand',
>> 'data': { 'arg-type': 'str', 'ret-type': 'str',
>> '*allow-oob': 'bool' } }
>>
>> The TODO neglects to spell out "and QGA doesn't support introspection so
>> far".
>
> Oof, ouch, my bones.
>
> What will it take to add introspection to QGA? (Is this GSoC/Outreachy
> appropriate?)
> (This is not critically important to me, just a backburner thought.)
The QEMU/QGA part should be easy enough: implement and document a
suitable introspection command, by stealing from query-qmp-schema.
The much more interesting part is putting it to actual use.
next prev parent reply other threads:[~2022-02-04 7:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-26 18:58 Notes on Generating Python signatures for QMP RPCs John Snow
2022-01-27 14:03 ` Markus Armbruster
2022-02-03 1:54 ` John Snow
2022-02-03 10:03 ` Markus Armbruster
2022-02-03 21:14 ` John Snow
2022-02-04 6:53 ` Markus Armbruster [this message]
2022-02-03 10:39 ` Daniel P. Berrangé
2022-02-03 22:52 ` John Snow
2022-02-04 7:23 ` Markus Armbruster
2022-02-04 9:21 ` Daniel P. Berrangé
2022-02-07 10: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=87ee4jcebp.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=abologna@redhat.com \
--cc=jsnow@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=victortoso@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).