[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 00/30] Configurable policy for handling deprecated interfa
From: |
Peter Krempa |
Subject: |
Re: [PATCH v2 00/30] Configurable policy for handling deprecated interfaces |
Date: |
Wed, 4 Mar 2020 12:55:33 +0100 |
User-agent: |
Mutt/1.13.3 (2020-01-12) |
On Tue, Mar 03, 2020 at 17:34:35 +0100, Markus Armbruster wrote:
> Based-on: <address@hidden>
>
> This series extends QMP introspection to cover deprecation.
> Additionally, 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.
I've quickly hacked up support for the 'deprecated' feature in libvirt's
QMP validator. I've found a few uses of deprecated commands but they
might very well be in code paths that are no longer invoked in modern
qemus:
Offenders from qemumonitorjsontest:
44) qemuMonitorJSONSetCPU ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'cpu-add': failed to validate arguments of 'cpu-add' against QAPI schema:
ERROR: 'cpu-add' is deprecated
FAILED
46) qemuMonitorJSONChangeMedia ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'change': failed to validate arguments of 'change' against QAPI schema: ERROR:
'change' is deprecated
FAILED
49) qemuMonitorJSONSetMigrationSpeed ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'migrate_set_speed': failed to validate arguments of 'migrate_set_speed'
against QAPI schema: ERROR: 'migrate_set_speed' is deprecated
FAILED
50) qemuMonitorJSONSetMigrationDowntime ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'migrate_set_downtime': failed to validate arguments of 'migrate_set_downtime'
against QAPI schema: ERROR: 'migrate_set_downtime' is deprecated
FAILED
77) qemuMonitorJSONGetMigrationCacheSize ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-migrate-cache-size': failed to validate arguments of
'query-migrate-cache-size' against QAPI schema: ERROR:
'query-migrate-cache-size' is deprecated
FAILED
83) qemuMonitorJSONQueryCPUs ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
93) GetCPUInfo(x86-basic-pluggable) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
94) GetCPUInfo(x86-full) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
95) GetCPUInfo(x86-node-full) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
97) GetCPUInfo(ppc64-basic) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
98) GetCPUInfo(ppc64-hotplug-1) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
99) GetCPUInfo(ppc64-hotplug-2) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
100) GetCPUInfo(ppc64-hotplug-4) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
101) GetCPUInfo(ppc64-no-threads) ...
libvirt: QEMU Driver error : internal error: unable to execute QEMU command
'query-cpus': failed to validate arguments of 'query-cpus' against QAPI schema:
ERROR: 'query-cpus' is deprecated
FAILED
Here all commands are tested just for legacy reasons. query-cpus-fast is
used on any live codebase, cpu-add is no longer used, change is not used
with -blockdev. I'm not sure about the migration parameter APIs but I
didn't check either.
The above shows that we can't enable this without thinking even in our
test-suite.
I'll try to come up with a solution where we can enable the reporting of
use of deprecated commands through /etc/qemu.conf so that I as an
developer can always use it.
I'm currently busy but I plan to follow up later.
I've pushed the test change here:
https://gitlab.com/pipo.sk/libvirt/-/commits/qmp-deprecated
The unfortunate part is that we'll need to manually inspect the codebase
for any deprecation in returned values. Our parser is 'artisanaly
handcrafted' so it can't be introspected.
- [PATCH v2 28/30] qapi: Implement -compat deprecated-output=hide, (continued)
- [PATCH v2 28/30] qapi: Implement -compat deprecated-output=hide, Markus Armbruster, 2020/03/03
- [PATCH v2 26/30] qapi: Mark deprecated QMP parts with feature 'deprecated', Markus Armbruster, 2020/03/03
- [PATCH v2 06/30] tests/test-qmp-cmds: Check responses more thoroughly, Markus Armbruster, 2020/03/03
- [PATCH v2 23/30] qapi: Simplify how qmp_dispatch() gets the request ID, Markus Armbruster, 2020/03/03
- [PATCH v2 20/30] qapi: Add feature flags to struct members, Markus Armbruster, 2020/03/03
- [PATCH v2 14/30] qapi/introspect: Rename *qlit* to reduce confusion, Markus Armbruster, 2020/03/03
- Re: [PATCH v2 00/30] Configurable policy for handling deprecated interfaces, Peter Maydell, 2020/03/03
- Re: [PATCH v2 00/30] Configurable policy for handling deprecated interfaces,
Peter Krempa <=
- Re: [PATCH v2 00/30] Configurable policy for handling deprecated interfaces, Markus Armbruster, 2020/03/04