From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Lukáš Doktor" <ldoktor@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>,
"Peter Krempa" <pkrempa@redhat.com>,
"Daniel P . Berrange" <berrange@redhat.com>,
libvir-list@redhat.com, mdroth@linux.vnet.ibm.com,
marcandre.lureau@gmail.com, libguestfs@redhat.com
Subject: [PATCH v7 00/11] Configurable policy for handling deprecated interfaces
Date: Thu, 18 Mar 2021 16:55:08 +0100 [thread overview]
Message-ID: <20210318155519.1224118-1-armbru@redhat.com> (raw)
New option -compat lets you configure what to do when deprecated
interfaces get used. This is intended for testing users of the
management interfaces. It is experimental.
-compat deprecated-input=<in-policy> configures what to do when
deprecated input is received. Available policies:
* accept: Accept deprecated commands and arguments (default)
* reject: Reject them
* crash: Crash
-compat deprecated-output=<out-policy> configures what to do when
deprecated output is sent. Available output policies:
* accept: Emit deprecated command results and events (default)
* hide: Suppress them
For now, -compat covers only deprecated syntactic aspects of QMP. We
may want to extend it to cover semantic aspects, CLI, and experimental
features.
v7:
* Trivially rebased
* PATCH 01: New, bug fix from Paolo
* PATCH 02+11: Since: comments fixed, for real this time [Eric]
* PATCH 03+10: qobject_output_visitor_new_qmp() and
qobject_input_visitor_new_qmp() moved to qmp-dispatch.c to not break
--disable-system --disable-tools builds
* PATCH 05: Minor fallout from changed PATCH 03
* PATCH 06: Commit message typo fixed [Eric]
v6:
* Rebased, with straightforward conflicts
* PATCH 1: More verbose commit message, explaining intent, and the
lack of introspection [Peter], comments updated for 6.0, Eric's R-by
kept anyway
* PATCH 5+6: Split old PATCH 5 [Eric], Eric's R-by lept anyway
* PATCH 7: New, correcting a latent issue so it doesn't break PATCH 8
* PATCH 10: Doc fix [Eric]
v5:
* Old PATCH 01-26 merged in commit f57587c7d47.
* Rebased, non-trivial conflicts in PATCH 1 due to Meson, and in PATCH
7 due to visitor changes
* PATCH 1: Comments updated for 5.2 [Eric]
* PATCH 2: Harmless missing initialization fixed [Eric]
* PATCH 3+4: Harmless missing has_FOO = true fixed [Eric]
* PATCH 6+7: Commit message tweaked
v4:
* PATCH 05+07: Temporary memory leak plugged [Marc-André]
* PATCH 23: Rewritten [Marc-André]
* PATCH 24: Comment typo [Marc-André]
* PATCH 30: Memory leaks plugged
v3:
* Rebased, non-trivial conflicts in PATCH 01+26+27+34 due to RST
conversion and code motion
* PATCH 28-29: Old PATCH 28 split up to ease review
* PATCH 30-31: New
* PATCH 32-33: Old PATCH 29 split up to ease review
Comparison to RFC (24 Oct 2019):
* Cover arguments and results in addition to commands and events
* Half-baked "[RFC PATCH 18/19] qapi: Include a warning in the
response to a deprecated command" dropped
See also last item of
Subject: Minutes of KVM Forum BoF on deprecating stuff
Date: Fri, 26 Oct 2018 16:03:51 +0200
Message-ID: <87mur0ls8o.fsf@dusky.pond.sub.org>
https://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg05828.html
Cc: Lukáš Doktor <ldoktor@redhat.com>
Cc: libguestfs@redhat.com
Cc: libvir-list@redhat.com
Cc: Daniel P. Berrange <berrange@redhat.com>
Cc: Peter Krempa <pkrempa@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Markus Armbruster (10):
qemu-options: New -compat to set policy for deprecated interfaces
qapi: Implement deprecated-output=hide for QMP command results
qapi: Implement deprecated-output=hide for QMP events
qapi: Implement deprecated-output=hide for QMP event data
monitor: Drop query-qmp-schema 'gen': false hack
qapi: Implement deprecated-output=hide for QMP introspection
test-util-sockets: Add stub for monitor_set_cur()
qapi: Implement deprecated-input=reject for QMP commands
qapi: Implement deprecated-input=reject for QMP command arguments
qapi: New -compat deprecated-input=crash
Paolo Bonzini (1):
qemuutil: remove qemu_set_fd_handler duplicate symbol
qapi/compat.json | 52 ++++++++++++
qapi/introspect.json | 2 +-
qapi/qapi-schema.json | 1 +
include/qapi/compat-policy.h | 38 +++++++++
include/qapi/qmp/dispatch.h | 1 +
include/qapi/qobject-input-visitor.h | 4 +
include/qapi/qobject-output-visitor.h | 4 +
include/qapi/visitor-impl.h | 6 ++
include/qapi/visitor.h | 18 +++++
monitor/monitor-internal.h | 3 -
monitor/misc.c | 2 -
monitor/qmp-cmds-control.c | 100 +++++++++++++++++++++---
qapi/qapi-visit-core.c | 18 +++++
qapi/qmp-dispatch.c | 35 +++++++++
qapi/qobject-input-visitor.c | 29 +++++++
qapi/qobject-output-visitor.c | 19 +++++
softmmu/vl.c | 17 ++++
storage-daemon/qemu-storage-daemon.c | 2 -
stubs/set-fd-handler.c | 10 ---
tests/unit/test-qmp-cmds.c | 91 +++++++++++++++++++--
tests/unit/test-qmp-event.c | 41 ++++++++++
tests/unit/test-util-sockets.c | 1 +
qapi/meson.build | 1 +
qapi/trace-events | 2 +
qemu-options.hx | 22 ++++++
scripts/qapi/commands.py | 17 ++--
scripts/qapi/events.py | 21 ++++-
scripts/qapi/visit.py | 15 ++++
stubs/meson.build | 1 -
tests/qapi-schema/qapi-schema-test.json | 20 +++--
tests/qapi-schema/qapi-schema-test.out | 20 ++---
31 files changed, 549 insertions(+), 64 deletions(-)
create mode 100644 qapi/compat.json
create mode 100644 include/qapi/compat-policy.h
delete mode 100644 stubs/set-fd-handler.c
--
2.26.3
next reply other threads:[~2021-03-18 15:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-18 15:55 Markus Armbruster [this message]
2021-03-18 15:55 ` [PATCH v7 01/11] qemuutil: remove qemu_set_fd_handler duplicate symbol Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 02/11] qemu-options: New -compat to set policy for deprecated interfaces Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 03/11] qapi: Implement deprecated-output=hide for QMP command results Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 04/11] qapi: Implement deprecated-output=hide for QMP events Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 05/11] qapi: Implement deprecated-output=hide for QMP event data Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 06/11] monitor: Drop query-qmp-schema 'gen': false hack Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 07/11] qapi: Implement deprecated-output=hide for QMP introspection Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 08/11] test-util-sockets: Add stub for monitor_set_cur() Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 09/11] qapi: Implement deprecated-input=reject for QMP commands Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 10/11] qapi: Implement deprecated-input=reject for QMP command arguments Markus Armbruster
2021-03-18 15:55 ` [PATCH v7 11/11] qapi: New -compat deprecated-input=crash 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=20210318155519.1224118-1-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=kwolf@redhat.com \
--cc=ldoktor@redhat.com \
--cc=libguestfs@redhat.com \
--cc=libvir-list@redhat.com \
--cc=marcandre.lureau@gmail.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=pkrempa@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 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).