[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