[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/32] qmp: Make "id" optional again even in "oob" mo
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL 07/32] qmp: Make "id" optional again even in "oob" monitors |
Date: |
Tue, 3 Jul 2018 17:37:03 +0200 |
Commit cf869d53172 "qmp: support out-of-band (oob) execution" made
"id" mandatory for all commands when the client accepted capability
"oob". This is rather onerous when you play with QMP by hand, and
unnecessarily so: only out-of-band commands need an ID for reliable
matching of response to command.
Revert that part of commit cf869d53172 for now, but have documentation
advise on the need to use "id" with out-of-band commands.
Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
---
docs/interop/qmp-spec.txt | 13 +++++++------
monitor.c | 7 -------
2 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/docs/interop/qmp-spec.txt b/docs/interop/qmp-spec.txt
index 6b72b69cb1..a1d6f9ee06 100644
--- a/docs/interop/qmp-spec.txt
+++ b/docs/interop/qmp-spec.txt
@@ -103,16 +103,13 @@ The format for command execution is:
required. Each command documents what contents will be considered
valid when handling the json-argument
- The "id" member is a transaction identification associated with the
- command execution. It is required for all commands if the OOB -
- capability was enabled at startup, and optional otherwise. The same
- "id" field will be part of the response if provided. The "id"
- member can be any json-value. A json-number incremented for each
- successive command works fine.
+ command execution, it is optional and will be part of the response
+ if provided. The "id" member can be any json-value. A json-number
+ incremented for each successive command works fine.
- The optional "control" member further specifies how the command is
to be executed. Currently, its only member is optional "run-oob".
See section "2.3.1 Out-of-band execution" for details.
-
2.3.1 Out-of-band execution
---------------------------
@@ -128,6 +125,10 @@ possibly overtaking prior in-band commands. The client
may therefore
receive such a command's response before responses from prior in-band
commands.
+To be able to match responses back to their commands, the client needs
+to pass "id" with out-of-band commands. Passing it with all commands
+is recommended for clients that accept capability "oob".
+
To execute a command out-of-band, the client puts "run-oob": true into
execute's member "control".
diff --git a/monitor.c b/monitor.c
index 3ad89fe1ba..0dd6e22463 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4292,13 +4292,6 @@ static void handle_qmp_command(JSONMessageParser
*parser, GQueue *tokens)
id = qdict_get(qdict, "id");
- /* When OOB is enabled, the "id" field is mandatory. */
- if (qmp_oob_enabled(mon) && !id) {
- error_setg(&err, "Out-of-band capability requires that "
- "every command contains an 'id' field");
- goto err;
- }
-
req_obj = g_new0(QMPRequest, 1);
req_obj->mon = mon;
req_obj->id = qobject_ref(id);
--
2.17.1
- [Qemu-devel] [PULL 00/32] Monitor patches for 2018-07-03, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 06/32] tests/qmp-test: Test in-band command doesn't overtake, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 04/32] qmp: Document COMMAND_DROPPED design flaw, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 10/32] tests/test-qga: Demonstrate the guest-agent ignores "control", Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 14/32] qmp: Always free QMPRequest with qmp_request_free(), Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 08/32] tests/test-qga: Demonstrate the guest-agent ignores "id", Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 13/32] qmp: Revert change to handle_qmp_command tracepoint, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 07/32] qmp: Make "id" optional again even in "oob" monitors,
Markus Armbruster <=
- [Qemu-devel] [PULL 18/32] qmp: Don't let JSON errors jump the queue, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 05/32] qmp: Get rid of x-oob-test command, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 02/32] monitor: Spell "I/O thread" consistently in comments, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 09/32] qmp qemu-ga: Revert change that accidentally made qemu-ga accept "id", Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 29/32] qobject: Let qobject_from_jsonf() fail instead of abort, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 27/32] qmp: Add some comments around null responses, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 32/32] qapi: Polish command flags documentation in qapi-code-gen.txt, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 01/32] qmp: Say "out-of-band" instead of "Out-Of-Band", Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 16/32] tests/qmp-test: Demonstrate QMP errors jumping the queue, Markus Armbruster, 2018/07/03
- [Qemu-devel] [PULL 03/32] docs/interop/qmp: Improve OOB documentation, Markus Armbruster, 2018/07/03