All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/10] Configurable policy for handling deprecated interfaces
@ 2021-03-12 15:32 Markus Armbruster
  2021-03-12 15:32 ` [PATCH v6 01/10] qemu-options: New -compat to set policy for " Markus Armbruster
                   ` (10 more replies)
  0 siblings, 11 replies; 23+ messages in thread
From: Markus Armbruster @ 2021-03-12 15:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Lukáš Doktor, Kevin Wolf, Peter Krempa,
	Daniel P . Berrange, libvir-list, mdroth, marcandre.lureau,
	libguestfs

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.

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

 qapi/compat.json                        |  52 ++++++++++++
 qapi/introspect.json                    |   2 +-
 qapi/qapi-schema.json                   |   1 +
 include/qapi/compat-policy.h            |  20 +++++
 include/qapi/qmp/dispatch.h             |   1 +
 include/qapi/qobject-input-visitor.h    |   9 +++
 include/qapi/qobject-output-visitor.h   |   9 +++
 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                     |  17 ++++
 qapi/qobject-input-visitor.c            |  29 +++++++
 qapi/qobject-output-visitor.c           |  19 +++++
 softmmu/vl.c                            |  17 ++++
 storage-daemon/qemu-storage-daemon.c    |   2 -
 tests/test-qmp-cmds.c                   |  91 +++++++++++++++++++--
 tests/test-qmp-event.c                  |  41 ++++++++++
 tests/test-util-sockets.c               |   1 +
 qapi/meson.build                        |   1 +
 qapi/trace-events                       |   2 +
 qemu-options.hx                         |  22 ++++++
 scripts/qapi/commands.py                |  14 ++--
 scripts/qapi/events.py                  |  20 ++++-
 scripts/qapi/visit.py                   |  15 ++++
 tests/qapi-schema/qapi-schema-test.json |  20 +++--
 tests/qapi-schema/qapi-schema-test.out  |  20 ++---
 29 files changed, 522 insertions(+), 50 deletions(-)
 create mode 100644 qapi/compat.json
 create mode 100644 include/qapi/compat-policy.h

-- 
2.26.2



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2021-03-18 15:12 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-12 15:32 [PATCH v6 00/10] Configurable policy for handling deprecated interfaces Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 01/10] qemu-options: New -compat to set policy for " Markus Armbruster
2021-03-15 15:41   ` Eric Blake
2021-03-15 16:29     ` Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 02/10] qapi: Implement deprecated-output=hide for QMP command results Markus Armbruster
2021-03-15 15:45   ` Eric Blake
2021-03-15 16:33     ` Markus Armbruster
2021-03-18 13:36   ` Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 03/10] qapi: Implement deprecated-output=hide for QMP events Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 04/10] qapi: Implement deprecated-output=hide for QMP event data Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 05/10] monitor: Drop query-qmp-schema 'gen': false hack Markus Armbruster
2021-03-15 16:10   ` Eric Blake
2021-03-15 16:34     ` Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 06/10] qapi: Implement deprecated-output=hide for QMP introspection Markus Armbruster
2021-03-15 16:13   ` Eric Blake
2021-03-12 15:32 ` [PATCH v6 07/10] test-util-sockets: Add stub for monitor_set_cur() Markus Armbruster
2021-03-15 16:14   ` Eric Blake
2021-03-12 15:32 ` [PATCH v6 08/10] qapi: Implement deprecated-input=reject for QMP commands Markus Armbruster
2021-03-15 16:16   ` Eric Blake
2021-03-12 15:32 ` [PATCH v6 09/10] qapi: Implement deprecated-input=reject for QMP command arguments Markus Armbruster
2021-03-12 15:32 ` [PATCH v6 10/10] qapi: New -compat deprecated-input=crash Markus Armbruster
2021-03-15 16:19   ` Eric Blake
2021-03-18 15:08 ` [PATCH v6 00/10] Configurable policy for handling deprecated interfaces Markus Armbruster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.