[Libguestfs] [PATCH v4 00/34] Configurable policy for handling deprecated interfaces
Markus Armbruster
armbru at redhat.com
Fri May 8 13:01:05 UTC 2020
Peter Krempa <pkrempa at redhat.com> writes:
> On Tue, Mar 17, 2020 at 12:54:25 +0100, Markus Armbruster wrote:
>> 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.
>>
>> -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
>
> I've noticed that the 'crash' option doesn't manage to log the reason to
> stderr. Relevant section of libvirt's log file which agregates the
> stderr/out
>
> 2020-04-30 13:24:22.006+0000: 2072883: debug : virCommandHandshakeChild:418 : Handshake with parent is done
> char device redirected to /dev/pts/0 (label charserial0)
> 2020-04-30 13:24:31.879+0000: Domain id=4 is tainted: custom-monitor
> 2020-04-30 13:24:32.330+0000: shutting down, reason=crashed
>
> 'handshake' line is last of libvirt's messages pre-start of the qemu
> process. 'char device redirected' is reported by qemu. 'domain is
> tainted' is added by libvirt when I've issued the deprecated API via
> virsh qemu-monitor-command. 'reason=crashed' is added by libvirts VM
> shutdown hanlder.
I'm up to my ears in QOM right now. I'd like to follow up when I pivot
back to QAPI/QMP. Please pester me if that takes too long.
>>
>> -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.
>>
>> PATCH 01-04: Documentation fixes
>> PATCH 05-10: Test improvements
>> PATCH 11-24: Add feature flags to remaining user-defined types and to
>> struct members
>> PATCH 25-26: New special feature 'deprecated', visible in
>> introspection
>
> These are cool. I've added support for verifying that any command
> excercised by the libvirt unit test suite is not deprecated, or we at
> least know that it is and have a replacement.
>
> https://www.redhat.com/archives/libvir-list/2020-April/msg01444.html
Awesome!
>> PATCH 27-34: New -compat to set policy for handling stuff marked with
>> feature 'deprecated'
>
> While implementing support for this feature I noticed that it's
> impossible for libvirt to detect that it's available. The idea is to
> make a developer-centred setting in our config which will enable the
> compat setting if available and ignore it if not available to prevent us
> having to fiddle with the settings when testing various qemu versions.
Again, I'd like to follow up when I pivot back to QAPI/QMP.
More information about the Libguestfs
mailing list