OSDN Git Service

qemu-options: New -compat to set policy for deprecated interfaces
authorMarkus Armbruster <armbru@redhat.com>
Thu, 18 Mar 2021 15:55:10 +0000 (16:55 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Fri, 19 Mar 2021 14:43:33 +0000 (15:43 +0100)
commit6dd75472d58d3d199eb5003a8d2ec2334c68f18f
treee3b749508b50981561e7c9e647504db605d8a4ec
parentb1eee9bb6de5902a8eabff4a9e7556855fadea6c
qemu-options: New -compat to set policy for deprecated interfaces

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=<input-policy> configures what to do when
deprecated input is received.  Input policy can be "accept" (accept
silently), or "reject" (reject the request with an error).

-compat deprecated-output=<out-policy> configures what to do when
deprecated output is sent.  Output policy can be "accept" (pass on
unchanged), or "hide" (filter out the deprecated parts).

Default is "accept".  Policies other than "accept" are implemented
later in this series.

For now, -compat covers only syntactic aspects of QMP, i.e. stuff
tagged with feature 'deprecated'.  We may want to extend it to cover
semantic aspects, CLI, and experimental features.

Note that there is no good way for management application to detect
presence of -compat: it's not visible output of query-qmp-schema or
query-command-line-options.  Tolerable, because it's meant for
testing.  If running with -compat fails, skip the test.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210318155519.1224118-3-armbru@redhat.com>
include/qapi/compat-policy.h [new file with mode: 0644]
qapi/compat.json [new file with mode: 0644]
qapi/meson.build
qapi/qapi-schema.json
qapi/qmp-dispatch.c
qemu-options.hx
softmmu/vl.c