Am 26.02.2021 um 18:26 hat Eric Blake geschrieben:
On 2/24/21 7:52 AM, Kevin Wolf wrote:
> This adds a QAPI schema for the properties of the throttle-group object.
>
> The only purpose of the x-* properties is to make the nested options in
> 'limits' available for a command line parser that doesn't support
> structs. Any parser that will use the QAPI schema will supports structs,
> though, so they will not be needed in the schema in the future.
>
> To keep the conversion straightforward, add them to the schema anyway.
> We can then remove the options and adjust documentation, test cases etc.
> in a separate patch.
>
> Signed-off-by: Kevin Wolf <kwolf(a)redhat.com>
> ---
> qapi/block-core.json | 27 +++++++++++++++++++++++++++
> qapi/qom.json | 7 +++++--
> 2 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 9f555d5c1d..a67fa0cc59 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -2504,6 +2504,33 @@
> '*bps-write-max' : 'int',
'*bps-write-max-length' : 'int',
> '*iops-size' : 'int' } }
>
> +##
> +# @ThrottleGroupProperties:
> +#
> +# Properties for throttle-group objects.
Corresponds to block/throttle-groups.c:throttle_group_obj_class_init()
with its ThrottleParamInfo struct for the x- fields, and limits as-is.
> +#
> +# The options starting with x- are aliases for the same key without x- in
> +# the @limits object. As indicated by the x- prefix, this is not a stable
> +# interface and may be removed or changed incompatibly in the future. Use
> +# @limits for a supported stable interface.
> +#
> +# @limits: limits to apply for this throttle group
And I did check that qapi/block-core.json:ThrottleLimits has the same
fields as the ThrottleParamInfo x- fields. All this duplication! But
we're getting to a state where it will be easier to clean up the cruft.
Indeed, after this series you can use 'limit' everywhere, so there is no
real reason for the x- fields to stay. I almost included the removal in
this series, but then it turned out that some more test cases depend on
it than I wanted to fix up on the side. But it's an obvious follow-up
series.
Kevin