qapi/qom: Add ObjectOptions for throttle-group

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@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Kevin Wolf 2020-10-20 12:47:58 +02:00
parent 6815bc1d03
commit 381bd7440d
2 changed files with 32 additions and 2 deletions

View File

@ -2442,6 +2442,33 @@
'*bps-write-max' : 'int', '*bps-write-max-length' : 'int',
'*iops-size' : 'int' } }
##
# @ThrottleGroupProperties:
#
# Properties for throttle-group objects.
#
# 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
#
# Since: 2.11
##
{ 'struct': 'ThrottleGroupProperties',
'data': { '*limits': 'ThrottleLimits',
'*x-iops-total' : 'int', '*x-iops-total-max' : 'int',
'*x-iops-total-max-length' : 'int', '*x-iops-read' : 'int',
'*x-iops-read-max' : 'int', '*x-iops-read-max-length' : 'int',
'*x-iops-write' : 'int', '*x-iops-write-max' : 'int',
'*x-iops-write-max-length' : 'int', '*x-bps-total' : 'int',
'*x-bps-total-max' : 'int', '*x-bps-total-max-length' : 'int',
'*x-bps-read' : 'int', '*x-bps-read-max' : 'int',
'*x-bps-read-max-length' : 'int', '*x-bps-write' : 'int',
'*x-bps-write-max' : 'int', '*x-bps-write-max-length' : 'int',
'*x-iops-size' : 'int' } }
##
# @block-stream:
#

View File

@ -5,6 +5,7 @@
# See the COPYING file in the top-level directory.
{ 'include': 'authz.json' }
{ 'include': 'block-core.json' }
{ 'include': 'common.json' }
##
@ -451,7 +452,8 @@
'memory-backend-ram',
'rng-builtin',
'rng-egd',
'rng-random'
'rng-random',
'throttle-group'
] }
##
@ -486,7 +488,8 @@
'memory-backend-ram': 'MemoryBackendProperties',
'rng-builtin': 'RngProperties',
'rng-egd': 'RngEgdProperties',
'rng-random': 'RngRandomProperties'
'rng-random': 'RngRandomProperties',
'throttle-group': 'ThrottleGroupProperties'
} }
##