qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] c06982: qmp: Say "out-of-band" instead of "Ou


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] c06982: qmp: Say "out-of-band" instead of "Out-Of-Band"
Date: Thu, 05 Jul 2018 05:33:30 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c06982122036546fcbfe40f5b22ae7088d28c9a2
      
https://github.com/qemu/qemu/commit/c06982122036546fcbfe40f5b22ae7088d28c9a2
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M docs/devel/qapi-code-gen.txt
    M docs/interop/qmp-spec.txt
    M monitor.c
    M qapi/misc.json
    M tests/qapi-schema/qapi-schema-test.json
    M tests/qmp-test.c

  Log Message:
  -----------
  qmp: Say "out-of-band" instead of "Out-Of-Band"

Affects documentation and a few error messages.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: c5f57ed026bbe6817b17dbc842e17fd23da1b607
      
https://github.com/qemu/qemu/commit/c5f57ed026bbe6817b17dbc842e17fd23da1b607
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  monitor: Spell "I/O thread" consistently in comments

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 71696cc66ce74a645e68844340e9fb5cfd598cc2
      
https://github.com/qemu/qemu/commit/71696cc66ce74a645e68844340e9fb5cfd598cc2
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M docs/interop/qmp-intro.txt
    M docs/interop/qmp-spec.txt

  Log Message:
  -----------
  docs/interop/qmp: Improve OOB documentation

OOB documentation is spread over qmp-spec.txt sections 2.2.1
Capabilities and 2.3 Issuing Commands.  The amount of detail is a bit
distracting there.  Move the meat of the matter to new section 2.3.1
Out of band execution.

Throw in a few other improvements while there:

* 2.2 Server Greeting: Drop advice to search entire capabilities
  array; should be obvious.

* 3. QMP Examples

  - 3.1 Server Greeting: Update greeting to the one we expect for the
    release.  Now shows capability "oob".  Update qmp-intro.txt
    likewise.

  - 3.2 Capabilities negotiation: Show client accepting capability
    "oob".

  - 3.7 Out-of-band execution: New.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
[Whitespace tidied up]


  Commit: d621cfe0a177978b17711a712293221294430f53
      
https://github.com/qemu/qemu/commit/d621cfe0a177978b17711a712293221294430f53
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c
    M qapi/misc.json

  Log Message:
  -----------
  qmp: Document COMMAND_DROPPED design flaw

Events are broadcast to all monitors.  If another monitor's client has
a command with the same ID in flight, the event will incorrectly claim
that command was dropped.  This must be fixed before out-of-band
execution can graduate from "experimental".

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 97ca0712c8f2b65479649693ffe01e7358418955
      
https://github.com/qemu/qemu/commit/97ca0712c8f2b65479649693ffe01e7358418955
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qapi/misc.json
    M qmp.c
    M tests/qmp-test.c

  Log Message:
  -----------
  qmp: Get rid of x-oob-test command

tests/qmp-test tests an out-of-band command overtaking a slow in-band
command.  To do that, it needs:

1. An in-band command that *reliably* takes long enough to be
   overtaken.

2. An out-of-band command to do the overtaking.

3. To avoid delays, a way to make the in-band command complete quickly
   after it was overtaken.

To satisfy these needs, commit 469638f9cb3 provides the rather
peculiar oob-capable QMP command x-oob-test:

* With "lock": true, it waits for a global semaphore.

* With "lock": false, it signals the global semaphore.

To satisfy 1., the test runs x-oob-test in-band with "lock": true.
To satisfy 2. and 3., it runs x-oob-test out-of-band with "lock": false.

Note that waiting for a semaphore violates the rules for oob-capable
commands.  Running x-oob-test with "lock": true hangs the monitor
until you run x-oob-test with "lock": false on another monitor (which
you might not have set up).

Having an externally visible QMP command that may hang the monitor is
not nice.  Let's apply a little more ingenuity to the problem.  Idea:
have an existing command block on reading a FIFO special file, unblock
it by opening the FIFO for writing.

For 1., use

    {"execute": "blockdev-add",  "id": ID1,
     "arguments": {
  "driver": "blkdebug", "node-name": ID1, "config": FIFO,
  "image": { "driver": "null-co"}}}

where ID1 is an arbitrary string, and FIFO is the name of the FIFO.

For 2., use

    {"execute": "migrate-pause", "id": ID2, "control": {"run-oob": true}}

where ID2 is a different arbitrary string.  Since there's no migration
to pause, the command will fail, but that's fine; instant failure is
still a test of out-of-band responses overtaking in-band commands.

For 3., open FIFO for writing.

Drop QMP command x-oob-test.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
[Error checking tweaked]


  Commit: 2970b4461f5f0dd0798774618713aadd457e8d48
      
https://github.com/qemu/qemu/commit/2970b4461f5f0dd0798774618713aadd457e8d48
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M tests/qmp-test.c

  Log Message:
  -----------
  tests/qmp-test: Test in-band command doesn't overtake

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 80cd93bd966bbb0907caa7f1d5676342f27f8f9e
      
https://github.com/qemu/qemu/commit/80cd93bd966bbb0907caa7f1d5676342f27f8f9e
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M docs/interop/qmp-spec.txt
    M monitor.c

  Log Message:
  -----------
  qmp: Make "id" optional again even in "oob" monitors

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>
Reviewed-by: Eric Blake <address@hidden>


  Commit: b5f8431040549da931b31892cbbde73b8724ff48
      
https://github.com/qemu/qemu/commit/b5f8431040549da931b31892cbbde73b8724ff48
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M tests/test-qga.c

  Log Message:
  -----------
  tests/test-qga: Demonstrate the guest-agent ignores "id"

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 0fa39d0b0374b983535de8591e5e561401d1d5c6
      
https://github.com/qemu/qemu/commit/0fa39d0b0374b983535de8591e5e561401d1d5c6
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c
    M qapi/qmp-dispatch.c
    M tests/test-qga.c

  Log Message:
  -----------
  qmp qemu-ga: Revert change that accidentally made qemu-ga accept "id"

Commit cf869d53172 "qmp: support out-of-band (oob) execution" changed
how we check "id":

    Note that in the patch I exported qmp_dispatch_check_obj() to be
    used to check the request earlier, and at the same time allowed
    "id" field to be there since actually we always allow that.

The part after "and" is ill-advised: it makes qemu-ga accept and
ignore "id".  Revert.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: d4d7ed731ce47d10ea2a17d663cec42fc0c7d925
      
https://github.com/qemu/qemu/commit/d4d7ed731ce47d10ea2a17d663cec42fc0c7d925
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M tests/test-qga.c

  Log Message:
  -----------
  tests/test-qga: Demonstrate the guest-agent ignores "control"

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 674ed7228f03150d15703961ea2a59cd744f3beb
      
https://github.com/qemu/qemu/commit/674ed7228f03150d15703961ea2a59cd744f3beb
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M include/qapi/qmp/dispatch.h
    M monitor.c
    M qapi/qmp-dispatch.c
    M qga/main.c
    M tests/test-qga.c
    M tests/test-qmp-cmds.c

  Log Message:
  -----------
  qmp qemu-ga: Fix qemu-ga not to accept "control"

Commit cf869d53172 "qmp: support out-of-band (oob) execution"
accidentally made qemu-ga accept and ignore "control".  Fix that.

Out-of-band execution in a monitor that doesn't support it now fails
with

    {"error": {"class": "GenericError", "desc": "QMP input member 'control' is 
unexpected"}}

instead of

    {"error": {"class": "GenericError", "desc": "Please enable out-of-band 
first for the session during capabilities negotiation"}}

The old description is suboptimal when out-of-band cannot not be
enabled, or the command doesn't support out-of-band execution.

The new description is a bit unspecific, but it'll do.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 00ecec151d2323e742af94cccf2de77025f3c0c1
      
https://github.com/qemu/qemu/commit/00ecec151d2323e742af94cccf2de77025f3c0c1
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M docs/devel/qapi-code-gen.txt
    M docs/interop/qmp-spec.txt
    M monitor.c
    M qapi/qmp-dispatch.c
    M tests/qmp-test.c
    M tests/test-qga.c

  Log Message:
  -----------
  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 <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
[Commit message typo fixed]


  Commit: 45434ba47b3e3ccc2ac76674bb3988a152554bf2
      
https://github.com/qemu/qemu/commit/45434ba47b3e3ccc2ac76674bb3988a152554bf2
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Revert change to handle_qmp_command tracepoint

Commit 71da4667db6 "monitor: separate QMP parser and dispatcher" moved
the handle_qmp_command tracepoint from handle_qmp_command() to
monitor_qmp_dispatch_one().  This delays tracing from enqueue time to
dequeue time.  Revert that.  Dequeue remains adequately visible via
tracepoint monitor_qmp_cmd_in_band.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 05f7274c8bd4a958f6673d28bf9bca0a9cf09c76
      
https://github.com/qemu/qemu/commit/05f7274c8bd4a958f6673d28bf9bca0a9cf09c76
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Always free QMPRequest with qmp_request_free()

monitor_qmp_dispatch_one() frees a QMPRequest manually, because it
needs to keep a reference to ->id.  Premature optimization.  Take an
additional reference so we can use qmp_request_free().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: b27314567d4cd8e204a18feba60d3341fb2d1aed
      
https://github.com/qemu/qemu/commit/b27314567d4cd8e204a18feba60d3341fb2d1aed
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Simplify code around monitor_qmp_dispatch_one()

Change monitor_qmp_dispatch_one() to take its parameters unwrapped,
move monitor_resume() to the one caller that needs it, rename the
function to monitor_qmp_dispatch().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: e8f4a22168f573633f31fad3d6bfcbe5f0259b28
      
https://github.com/qemu/qemu/commit/e8f4a22168f573633f31fad3d6bfcbe5f0259b28
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c
    M tests/qmp-test.c

  Log Message:
  -----------
  tests/qmp-test: Demonstrate QMP errors jumping the queue

When OOB is enabled, out-of-band commands are executed right away,
everything else is queued.  This lets out-of-band commands "jump the
queue".

However, certain errors are always reported right away, and therefore
can jump the queue even when the erroneous input does not request
out-of-band execution.  These errors are pretty unlikely to occur in
production, but it's wrong all the same.  Mark FIXME.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>


  Commit: 69240fe62d1ae02257bc0694a11c478b10378948
      
https://github.com/qemu/qemu/commit/69240fe62d1ae02257bc0694a11c478b10378948
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M include/qapi/qmp/dispatch.h
    M monitor.c
    M qapi/qmp-dispatch.c
    M tests/qmp-test.c

  Log Message:
  -----------
  qmp: Don't let malformed in-band commands jump the queue

handle_qmp_command() reports certain errors right away.  This is wrong
when OOB is enabled, because the errors can "jump the queue" then, as
the previous commit demonstrates.

To fix, we need to delay errors until dispatch.  Do that for semantic
errors, mostly by reverting ill-advised parts of commit cf869d53172
"qmp: support out-of-band (oob) execution".  Bonus: doesn't run
qmp_dispatch_check_obj() twice, once in handle_qmp_command(), and
again in do_qmp_dispatch().  That's also due to commit cf869d53172.

The next commit will fix queue jumping for syntax errors.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 1cc37471525d03f963bc71d724f0dc9eab888fc1
      
https://github.com/qemu/qemu/commit/1cc37471525d03f963bc71d724f0dc9eab888fc1
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Don't let JSON errors jump the queue

handle_qmp_command() reports JSON syntax errors right away.  This is
wrong when OOB is enabled, because the errors can "jump the queue"
then.

The previous commit fixed the same bug for semantic errors, by
delaying the checking until dispatch.  We can't delay the checking, so
delay the reporting.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: f91dc2a0d05eb211a18b8569ad42fb350dbf0b9f
      
https://github.com/qemu/qemu/commit/f91dc2a0d05eb211a18b8569ad42fb350dbf0b9f
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  monitor: Rename use_io_thr to use_io_thread

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: cab5ad86b41af6deead6f9bd6edc8a2353eb3e90
      
https://github.com/qemu/qemu/commit/cab5ad86b41af6deead6f9bd6edc8a2353eb3e90
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  monitor: Peel off @mon_global wrapper

Wrapping global variables in a struct without a use for the wrapper
struct buys us nothing but longer lines.  Unwrap them.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: a193352ff9c7cd2cd07846118bc49921d0f53af8
      
https://github.com/qemu/qemu/commit/a193352ff9c7cd2cd07846118bc49921d0f53af8
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M include/qapi/qmp/qjson.h
    M qobject/qjson.c

  Log Message:
  -----------
  qobject: New qdict_from_jsonf_nofail()

Many uses of qobject_from_jsonf() convert JSON objects.  Create new
convenience function qdict_from_jsonf_nofail() that includes the
conversion to QDict.  The next few commits will put it to use.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: cee32796cadc9510ee00f029a933009df7a28ae2
      
https://github.com/qemu/qemu/commit/cee32796cadc9510ee00f029a933009df7a28ae2
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M include/qapi/qmp/dispatch.h
    M monitor.c
    M qapi/qmp-dispatch.c
    M qga/main.c

  Log Message:
  -----------
  qmp: De-duplicate error response building

All callers of qmp_build_error_object() duplicate the code to wrap it
in a response object.  Replace it by qmp_error_response() that
captures the duplicated code, including error_free().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: d43b16945afa8457b03aee543a110c4ff0b7f070
      
https://github.com/qemu/qemu/commit/d43b16945afa8457b03aee543a110c4ff0b7f070
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M include/qapi/qmp/dispatch.h
    M monitor.c
    M qapi/qmp-dispatch.c
    M qga/main.c
    M tests/test-qmp-cmds.c

  Log Message:
  -----------
  qmp: Use QDict * instead of QObject * for response objects

By using the more specific type, we get fewer downcasts.  The
downcasts are safe, but not obviously so, at least not locally.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 65e3fe6743af08bd0bc79b3d6158e91d572afc57
      
https://github.com/qemu/qemu/commit/65e3fe6743af08bd0bc79b3d6158e91d572afc57
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Replace monitor_json_emitter{,raw}() by qmp_{queue,send}_response()

monitor_json_emitter() and monitor_json_emitter_raw() are
unnecessarily general: they can send arbitrary JSON values, even
though we only ever use them for QMP, which may send only JSON
objects.

Specialize the argument from QObject * to QDict *, and rename to
qmp_queue_response(), qmp_send_response().

All callers but one lose an upcast.  The lone exception gains a
downcast; the next commit will get rid of it.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 1816604b62f4c5ac1032374a941638f2fe199104
      
https://github.com/qemu/qemu/commit/1816604b62f4c5ac1032374a941638f2fe199104
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Replace get_qmp_greeting() by qmp_greeting()

get_qmp_greeting() returns a QDict * as QObject *.  It's caller
converts it right back.

Return QDict * instead.  While there, rename to qmp_greeting().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 7cb2123f226a88fddcb9a3673c658c818ee6daed
      
https://github.com/qemu/qemu/commit/7cb2123f226a88fddcb9a3673c658c818ee6daed
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Simplify monitor_qmp_respond()

monitor_qmp_respond() takes both a response object and an error
object.  If an error object is non-null, the response object must be
null, and the response is built from the error object.

Of the two callers, one always passes a null response object, and one
a null error object.  Move building the response object from the error
object to the latter, and drop the error object parameter.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 62e93be286626839ef2597da81f70a3ba4a31fff
      
https://github.com/qemu/qemu/commit/62e93be286626839ef2597da81f70a3ba4a31fff
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qapi/qmp-dispatch.c

  Log Message:
  -----------
  qmp: Add some comments around null responses

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: cd499d2058adb657b034023e9e7428c94b0f212d
      
https://github.com/qemu/qemu/commit/cd499d2058adb657b034023e9e7428c94b0f212d
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qapi/qmp-event.c

  Log Message:
  -----------
  qmp: Switch timestamp_put() to qdict_from_jsonf_nofail()

There's just one use of qobject_from_jsonf() to parse a JSON object
left: timestamp_put().  Switch it to qdict_from_jsonf_nofail().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: ab45015a968cc2c784a00775d52c6ea17e72c9fb
      
https://github.com/qemu/qemu/commit/ab45015a968cc2c784a00775d52c6ea17e72c9fb
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qobject/qjson.c

  Log Message:
  -----------
  qobject: Let qobject_from_jsonf() fail instead of abort

qobject_from_jsonf() aborts on error, unlike qobject_from_jsonv(),
which returns null.  Since all remaining users of qobject_from_jsonf()
cope fine with null, change it to return null.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 279f9e0840d08db8e0bb3806b6eb4f2f60cb104f
      
https://github.com/qemu/qemu/commit/279f9e0840d08db8e0bb3806b6eb4f2f60cb104f
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  qmp: Clean up capability negotiation after commit 02130314d8c

qmp_greeting() offers capabilities to the client, and
qmp_qmp_capabilities() accepts or denies capabilities requested by the
client.  The two compute the set of available capabilities
independently.  Not nice.

Clean this up as follows.  Compute available capabilities just once in
monitor_qmp_caps_reset(), and store them in Monitor member
qmp.capab_offered[].  Have qmp_greeting() and qmp_qmp_capabilities()
use that.  Both are now oblivious of capability details.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 774a6b67a409edf23a9b4b02da9ccbfc62e27cae
      
https://github.com/qemu/qemu/commit/774a6b67a409edf23a9b4b02da9ccbfc62e27cae
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  monitor: Improve some comments

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 153d73f320f422ecb5807ac3a93547b9f819599b
      
https://github.com/qemu/qemu/commit/153d73f320f422ecb5807ac3a93547b9f819599b
  Author: Markus Armbruster <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M docs/devel/qapi-code-gen.txt

  Log Message:
  -----------
  qapi: Polish command flags documentation in qapi-code-gen.txt

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 4fd1cbaf146d4ab35f465bba0fe23115c33cd5a7
      
https://github.com/qemu/qemu/commit/4fd1cbaf146d4ab35f465bba0fe23115c33cd5a7
  Author: Peter Maydell <address@hidden>
  Date:   2018-07-05 (Thu, 05 Jul 2018)

  Changed paths:
    M docs/devel/qapi-code-gen.txt
    M docs/interop/qmp-intro.txt
    M docs/interop/qmp-spec.txt
    M include/qapi/qmp/dispatch.h
    M include/qapi/qmp/qjson.h
    M monitor.c
    M qapi/misc.json
    M qapi/qmp-dispatch.c
    M qapi/qmp-event.c
    M qga/main.c
    M qmp.c
    M qobject/qjson.c
    M tests/qapi-schema/qapi-schema-test.json
    M tests/qmp-test.c
    M tests/test-qga.c
    M tests/test-qmp-cmds.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2018-07-03-v2' 
into staging

Monitor patches for 2018-07-03

# gpg: Signature made Tue 03 Jul 2018 22:20:13 BST
# gpg:                using RSA key 3870B400EB918653
# gpg: Good signature from "Markus Armbruster <address@hidden>"
# gpg:                 aka "Markus Armbruster <address@hidden>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-monitor-2018-07-03-v2: (32 commits)
  qapi: Polish command flags documentation in qapi-code-gen.txt
  monitor: Improve some comments
  qmp: Clean up capability negotiation after commit 02130314d8c
  qobject: Let qobject_from_jsonf() fail instead of abort
  qmp: Switch timestamp_put() to qdict_from_jsonf_nofail()
  qmp: Add some comments around null responses
  qmp: Simplify monitor_qmp_respond()
  qmp: Replace get_qmp_greeting() by qmp_greeting()
  qmp: Replace monitor_json_emitter{,raw}() by qmp_{queue,send}_response()
  qmp: Use QDict * instead of QObject * for response objects
  qmp: De-duplicate error response building
  qobject: New qdict_from_jsonf_nofail()
  monitor: Peel off @mon_global wrapper
  monitor: Rename use_io_thr to use_io_thread
  qmp: Don't let JSON errors jump the queue
  qmp: Don't let malformed in-band commands jump the queue
  tests/qmp-test: Demonstrate QMP errors jumping the queue
  qmp: Simplify code around monitor_qmp_dispatch_one()
  qmp: Always free QMPRequest with qmp_request_free()
  qmp: Revert change to handle_qmp_command tracepoint
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/5dafaf4fbcee...4fd1cbaf146d
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]