All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: kwolf@redhat.com, pkrempa@redhat.com, berrange@redhat.com,
	ehabkost@redhat.com, qemu-block@nongnu.org, quintela@redhat.com,
	libvir-list@redhat.com, philmd@redhat.com, kchamart@redhat.com,
	qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com,
	dgilbert@redhat.com, pbonzini@redhat.com,
	marcandre.lureau@redhat.com, jsnow@redhat.com,
	libguestfs@redhat.com
Subject: Re: [PATCH v2 9/9] qapi: Extend -compat to set policy for unstable interfaces
Date: Fri, 29 Oct 2021 17:15:41 +0200	[thread overview]
Message-ID: <874k8zdfqa.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20211029151009.mv4zqqde6zisywza@redhat.com> (Eric Blake's message of "Fri, 29 Oct 2021 10:10:09 -0500")

Eric Blake <eblake@redhat.com> writes:

> On Thu, Oct 28, 2021 at 12:25:20PM +0200, Markus Armbruster wrote:
>> New option parameters unstable-input and unstable-output set policy
>> for unstable interfaces just like deprecated-input and
>> deprecated-output set policy for deprecated interfaces (see commit
>> 6dd75472d5 "qemu-options: New -compat to set policy for deprecated
>> interfaces").  This is intended for testing users of the management
>> interfaces.  It is experimental.
>> 
>> For now, this covers only syntactic aspects of QMP, i.e. stuff tagged
>> with feature 'unstable'.  We may want to extend it to cover semantic
>> aspects, or the command line.
>> 
>> Note that there is no good way for management application to detect
>> presence of these new option parameters: they are 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.
>
> Not to mention, once we finish QAPIfying the command line, we could
> make sure it is visible through introspection at that time (it may
> require tagging the command line option with a feature, if nothing
> else makes it pop through).
>
>> 
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> Acked-by: John Snow <jsnow@redhat.com>
>> ---
>>  qapi/compat.json              |  6 +++++-
>>  include/qapi/util.h           |  1 +
>>  qapi/qmp-dispatch.c           |  6 ++++++
>>  qapi/qobject-output-visitor.c |  8 ++++++--
>>  qemu-options.hx               | 20 +++++++++++++++++++-
>>  scripts/qapi/events.py        | 10 ++++++----
>>  scripts/qapi/schema.py        | 10 ++++++----
>>  7 files changed, 49 insertions(+), 12 deletions(-)
>> 
>> diff --git a/qapi/compat.json b/qapi/compat.json
>> index 74a8493d3d..9bc9804abb 100644
>> --- a/qapi/compat.json
>> +++ b/qapi/compat.json
>> @@ -47,9 +47,13 @@
>>  #
>>  # @deprecated-input: how to handle deprecated input (default 'accept')
>>  # @deprecated-output: how to handle deprecated output (default 'accept')
>> +# @unstable-input: how to handle unstable input (default 'accept')
>> +# @unstable-output: how to handle unstable output (default 'accept')
>
> Missing '(since 6.2)' doc tags on the two new policies.

Fixing...

>>  #
>>  # Since: 6.0
>>  ##
>>  { 'struct': 'CompatPolicy',
>>    'data': { '*deprecated-input': 'CompatPolicyInput',
>> -            '*deprecated-output': 'CompatPolicyOutput' } }
>> +            '*deprecated-output': 'CompatPolicyOutput',
>> +            '*unstable-input': 'CompatPolicyInput',
>> +            '*unstable-output': 'CompatPolicyOutput' } }
>> diff --git a/include/qapi/util.h b/include/qapi/util.h
>> index 0cc98db9f9..81a2b13a33 100644
>> --- a/include/qapi/util.h
>> +++ b/include/qapi/util.h
>> @@ -13,6 +13,7 @@
>>  
>>  typedef enum {
>>      QAPI_DEPRECATED,
>> +    QAPI_UNSTABLE,
>>  } QapiSpecialFeature;
>
>> +++ b/qemu-options.hx
>> @@ -3641,7 +3641,9 @@ DEFHEADING(Debug/Expert options:)
>>  
>>  DEF("compat", HAS_ARG, QEMU_OPTION_compat,
>>      "-compat [deprecated-input=accept|reject|crash][,deprecated-output=accept|hide]\n"
>> -    "                Policy for handling deprecated management interfaces\n",
>> +    "                Policy for handling deprecated management interfaces\n"
>> +    "-compat [unstable-input=accept|reject|crash][,unstable-output=accept|hide]\n"
>> +    "                Policy for handling unstable management interfaces\n",
>
> It may not be machine-introspectible, but at least we can grep --help
> output to see when the policy is usable for testing.
>
>>      QEMU_ARCH_ALL)
>>  SRST
>>  ``-compat [deprecated-input=@var{input-policy}][,deprecated-output=@var{output-policy}]``
>> @@ -3659,6 +3661,22 @@ SRST
>>          Suppress deprecated command results and events
>>  
>>      Limitation: covers only syntactic aspects of QMP.
>> +
>> +``-compat [unstable-input=@var{input-policy}][,unstable-output=@var{output-policy}]``
>> +    Set policy for handling unstable management interfaces (experimental):
>
> Once we QAPIfy the command line, this says we would add the 'unstable'
> feature flag to '-compat unstable-input'.  How meta ;)

Yes :)

>                                                        And goes along
> with your comments earlier in the series about how we may use the
> 'unstable' feature even without the 'x-' naming prefix, once it is
> machine-detectible.
>
> With the doc tweak,
> Reviewed-by: Eric Blake <eblake@redhat.com>

Thanks!



      reply	other threads:[~2021-10-29 15:17 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-28 10:25 [PATCH v2 0/9] Configurable policy for handling unstable interfaces Markus Armbruster
2021-10-28 10:25 ` [PATCH v2 1/9] qapi: New special feature flag "unstable" Markus Armbruster
2021-10-28 10:25 ` [PATCH v2 2/9] qapi: Mark unstable QMP parts with feature 'unstable' Markus Armbruster
2021-10-28 10:25 ` [PATCH v2 3/9] qapi: Eliminate QCO_NO_OPTIONS for a slight simplification Markus Armbruster
2021-10-28 10:25 ` [PATCH v2 4/9] qapi: Tools for sets of special feature flags in generated code Markus Armbruster
2021-10-29 10:32   ` Juan Quintela
2021-10-29 11:33   ` Philippe Mathieu-Daudé
2021-10-28 10:25 ` [PATCH v2 5/9] qapi: Generalize struct member policy checking Markus Armbruster
2021-10-29 10:42   ` Juan Quintela
2021-10-29 13:22     ` Markus Armbruster
2021-10-29 13:31   ` Philippe Mathieu-Daudé
2021-10-29 14:01     ` Markus Armbruster
2021-10-29 16:11       ` Philippe Mathieu-Daudé
2021-10-29 15:20   ` Eric Blake
2021-10-29 15:34     ` Markus Armbruster
2021-10-29 16:13       ` Philippe Mathieu-Daudé
2021-10-28 10:25 ` [PATCH v2 6/9] qapi: Generalize command " Markus Armbruster
2021-10-29 10:44   ` Juan Quintela
2021-10-29 15:28   ` Eric Blake
2021-10-29 16:11     ` Philippe Mathieu-Daudé
2021-10-28 10:25 ` [PATCH v2 7/9] qapi: Generalize enum member " Markus Armbruster
2021-10-29 11:31   ` Philippe Mathieu-Daudé
2021-10-28 10:25 ` [PATCH v2 8/9] qapi: Factor out compat_policy_input_ok() Markus Armbruster
2021-10-29 16:55   ` Markus Armbruster
2021-10-29 17:01     ` Philippe Mathieu-Daudé
2021-10-28 10:25 ` [PATCH v2 9/9] qapi: Extend -compat to set policy for unstable interfaces Markus Armbruster
2021-10-29 15:10   ` Eric Blake
2021-10-29 15:15     ` Markus Armbruster [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874k8zdfqa.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kchamart@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=libguestfs@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@redhat.com \
    --cc=pkrempa@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.