[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 02/10] qapi: Implement deprecated-output=hide for QMP comm
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v6 02/10] qapi: Implement deprecated-output=hide for QMP command results |
Date: |
Thu, 18 Mar 2021 14:36:43 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Markus Armbruster <armbru@redhat.com> writes:
> This policy suppresses deprecated bits in output, and thus permits
> "testing the future". Implement it for QMP command results. Example:
> when QEMU is run with -compat deprecated-output=hide, then
>
> {"execute": "query-cpus-fast"}
>
> yields
>
> {"return": [{"thread-id": 9805, "props": {"core-id": 0, "thread-id": 0,
> "socket-id": 0}, "qom-path": "/machine/unattached/device[0]", "cpu-index": 0,
> "target": "x86_64"}]}
>
> instead of
>
> {"return": [{"arch": "x86", "thread-id": 22436, "props": {"core-id": 0,
> "thread-id": 0, "socket-id": 0}, "qom-path": "/machine/unattached/device[0]",
> "cpu-index": 0, "target": "x86_64"}]}
>
> Note the suppression of deprecated member "arch".
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> ---
[...]
> diff --git a/qapi/qobject-output-visitor.c b/qapi/qobject-output-visitor.c
> index ba6f6ac8a7..5c4aa0f64d 100644
> --- a/qapi/qobject-output-visitor.c
> +++ b/qapi/qobject-output-visitor.c
[...]
> @@ -264,3 +275,11 @@ Visitor *qobject_output_visitor_new(QObject **result)
>
> return &v->visitor;
> }
> +
> +Visitor *qobject_output_visitor_new_qmp(QObject **result)
> +{
> + QObjectOutputVisitor *v = to_qov(qobject_output_visitor_new(result));
> +
> + v->deprecated_policy = compat_policy.deprecated_output;
> + return &v->visitor;
> +}
Linking fail when we link qapi/qobject-output-visitor.o (which uses
@compat_policy), but not qapi/qmp-dispatch.o (which defines it).
Fails for me when I configure --disable-system --disable-tools.
Minimally invasive fix: move the function to qmp-dispatch.c.
Same for qobject_input_visitor_new_qmp() in PATCH 09.
[...]
- [PATCH v6 00/10] Configurable policy for handling deprecated interfaces, Markus Armbruster, 2021/03/12
- [PATCH v6 01/10] qemu-options: New -compat to set policy for deprecated interfaces, Markus Armbruster, 2021/03/12
- [PATCH v6 04/10] qapi: Implement deprecated-output=hide for QMP event data, Markus Armbruster, 2021/03/12
- [PATCH v6 08/10] qapi: Implement deprecated-input=reject for QMP commands, Markus Armbruster, 2021/03/12
- [PATCH v6 02/10] qapi: Implement deprecated-output=hide for QMP command results, Markus Armbruster, 2021/03/12
- [PATCH v6 07/10] test-util-sockets: Add stub for monitor_set_cur(), Markus Armbruster, 2021/03/12
- [PATCH v6 05/10] monitor: Drop query-qmp-schema 'gen': false hack, Markus Armbruster, 2021/03/12
- [PATCH v6 10/10] qapi: New -compat deprecated-input=crash, Markus Armbruster, 2021/03/12
- [PATCH v6 06/10] qapi: Implement deprecated-output=hide for QMP introspection, Markus Armbruster, 2021/03/12
- [PATCH v6 09/10] qapi: Implement deprecated-input=reject for QMP command arguments, Markus Armbruster, 2021/03/12