diff options
author | Markus Armbruster | 2018-07-03 10:53:38 +0200 |
---|---|---|
committer | Markus Armbruster | 2018-07-03 23:18:56 +0200 |
commit | 00ecec151d2323e742af94cccf2de77025f3c0c1 (patch) | |
tree | b7e0beaf23bc7e56f0a76e5ef5bd41f1e4247edd /docs/devel | |
parent | qmp qemu-ga: Fix qemu-ga not to accept "control" (diff) | |
download | qemu-00ecec151d2323e742af94cccf2de77025f3c0c1.tar.gz qemu-00ecec151d2323e742af94cccf2de77025f3c0c1.tar.xz qemu-00ecec151d2323e742af94cccf2de77025f3c0c1.zip |
qmp: Redo how the client requests out-of-band execution
Commit cf869d53172 "qmp: support out-of-band (oob) execution" added a
general mechanism for command-independent arguments just for an
out-of-band flag:
The "control" key is introduced to store this extra flag. "control"
field is used to store arguments that are shared by all the commands,
rather than command specific arguments. Let "run-oob" be the first.
However, it failed to reject unknown members of "control". For
instance, in QMP command
{"execute": "query-name", "id": 42, "control": {"crap": true}}
"crap" gets silently ignored.
Instead of fixing this, revert the general "control" mechanism
(because YAGNI), and do it the way I initially proposed, with key
"exec-oob". Simpler code, simpler interface.
An out-of-band command
{"execute": "migrate-pause", "id": 42, "control": {"run-oob": true}}
becomes
{"exec-oob": "migrate-pause", "id": 42}
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180703085358.13941-13-armbru@redhat.com>
[Commit message typo fixed]
Diffstat (limited to 'docs/devel')
-rw-r--r-- | docs/devel/qapi-code-gen.txt | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt index 9625798d16..f020f6bab2 100644 --- a/docs/devel/qapi-code-gen.txt +++ b/docs/devel/qapi-code-gen.txt @@ -649,13 +649,11 @@ example: { 'command': 'migrate_recover', 'data': { 'uri': 'str' }, 'allow-oob': true } -To execute a command with out-of-band priority, the client specifies -the "control" field in the request, with "run-oob" set to -true. Example: +To execute a command with out-of-band priority, the client uses key +"exec-oob" instead of "execute". Example: - => { "execute": "command-support-oob", - "arguments": { ... }, - "control": { "run-oob": true } } + => { "exec-oob": "migrate-recover", + "arguments": { "uri": "tcp:192.168.1.200:12345" } } <= { "return": { } } Without it, even the commands that support out-of-band execution will |