Markus Armbruster <arm...@redhat.com> writes:

> Fabiano Rosas <faro...@suse.de> writes:
>
>> Now that the TLS options have been made the same between
>> migrate-set-parameters and query-migrate-parameters, a single type can
>> be used. Remove MigrateSetParameters.
>>
>> The TLS options documentation from MigrationParameters were replaced
>> with the ones from MigrateSetParameters which was more complete.
>>
>> Signed-off-by: Fabiano Rosas <faro...@suse.de>
>
> [...]
>
>> diff --git a/qapi/migration.json b/qapi/migration.json
>> index 97bb022c45..3788c39857 100644
>> --- a/qapi/migration.json
>> +++ b/qapi/migration.json
>> @@ -914,206 +914,10 @@
>>             'zero-page-detection',
>>             'direct-io'] }
>>  
>> -##
>> -# @MigrateSetParameters:
>
> [...]
>
>>  ##
>>  # @migrate-set-parameters:
>>  #
>> -# Set various migration parameters.
>> +# Set migration parameters.  All fields are optional.
>
> Use "arguments" instead of "fields".
>
>>  #
>>  # Since: 2.4
>>  #
>> @@ -1124,13 +928,11 @@
>>  #     <- { "return": {} }
>>  ##
>>  { 'command': 'migrate-set-parameters', 'boxed': true,
>> -  'data': 'MigrateSetParameters' }
>> +  'data': 'MigrationParameters' }
>>  
>>  ##
>>  # @MigrationParameters:
>>  #
>> -# The optional members aren't actually optional.
>> -#
>>  # @announce-initial: Initial delay (in milliseconds) before sending
>>  #     the first announce (Since 4.0)
>>  #
>> @@ -1148,12 +950,12 @@
>>  #     percentage.  The default value is 50.  (Since 5.0)
>>  #
>>  # @cpu-throttle-initial: Initial percentage of time guest cpus are
>> -#     throttled when migration auto-converge is activated.
>> -#     (Since 2.7)
>> +#     throttled when migration auto-converge is activated.  The
>> +#     default value is 20.  (Since 2.7)
>>  #
>>  # @cpu-throttle-increment: throttle percentage increase each time
>>  #     auto-converge detects that migration is not making progress.
>> -#     (Since 2.7)
>> +#     The default value is 10.  (Since 2.7)
>>  #
>>  # @cpu-throttle-tailslow: Make CPU throttling slower at tail stage.
>>  #     At the tail stage of throttling, the Guest is very sensitive to
>> @@ -1172,21 +974,25 @@
>>  #     for establishing a TLS connection over the migration data
>>  #     channel.  On the outgoing side of the migration, the credentials
>>  #     must be for a 'client' endpoint, while for the incoming side the
>> -#     credentials must be for a 'server' endpoint.  An empty string
>> -#     means that QEMU will use plain text mode for migration, rather
>> -#     than TLS.  (Since 2.7)
>> -#
>> -#     Note: 2.8 omits empty @tls-creds instead.
>> +#     credentials must be for a 'server' endpoint.  Setting this to a
>> +#     non-empty string enables TLS for all migrations.  An empty
>> +#     string means that QEMU will use plain text mode for migration,
>> +#     rather than TLS.  This is the default.  (Since 2.7)
>>  #
>>  # @tls-hostname: migration target's hostname for validating the
>>  #     server's x509 certificate identity.  If empty, QEMU will use the
>> -#     hostname from the migration URI, if any.  (Since 2.7)
>> +#     hostname from the migration URI, if any.  A non-empty value is
>> +#     required when using x509 based TLS credentials and the migration
>> +#     URI does not include a hostname, such as fd: or exec: based
>> +#     migration.  (Since 2.7)
>>  #
>> -#     Note: 2.8 omits empty @tls-hostname instead.
>> +#     Note: empty value works only since 2.9.
>>  #
>>  # @tls-authz: ID of the 'authz' object subclass that provides access
>>  #     control checking of the TLS x509 certificate distinguished name.
>> -#     (Since 4.0)
>> +#     This object is only resolved at time of use, so can be deleted
>> +#     and recreated on the fly while the migration server is active.
>> +#     If missing, it will default to denying access (Since 4.0)
>>  #
>>  # @max-bandwidth: maximum speed for migration, in bytes per second.
>>  #     (Since 2.8)
>> @@ -1205,8 +1011,8 @@
>>  # @downtime-limit: set maximum tolerated downtime for migration.
>>  #     maximum downtime in milliseconds (Since 2.8)
>>  #
>> -# @x-checkpoint-delay: the delay time between two COLO checkpoints.
>> -#     (Since 2.8)
>> +# @x-checkpoint-delay: the delay time between two COLO checkpoints in
>> +#     periodic mode.  (Since 2.8)
>>  #
>>  # @multifd-channels: Number of channels used to migrate data in
>>  #     parallel.  This is the same number that the number of sockets
>
> Please add
>
>    ##
>    # @query-migrate-parameters:
>    #
>   -# Return information about the current migration parameters
>   +# Return information about the current migration parameters.
>   +# Optional members of the return value are always present.
>    #
>    # Returns: @MigrationParameters
>    #
>    # Since: 2.4
>    #
>
> and double-check "always" is actually true.

It's not, block-bitmap-mapping needs to be kept optional for
compatibility.

What about:

# Return information about the current migration parameters.  Optional
# members of the return value are always present, except for
# block-bitmap-mapping that's only present if it has been previously
# set.

>
> With that, QAPI schema
> Acked-by: Markus Armbruster <arm...@redhat.com>

Reply via email to