[libvirt] [PATCH] qemu: Correctly wait for spice to migrate

Michal Privoznik mprivozn at redhat.com
Thu Oct 18 08:32:14 UTC 2012


On 18.10.2012 10:19, Martin Kletzander wrote:
> On 10/18/2012 09:47 AM, Michal Privoznik wrote:
>> Currently we query-spice after the main migration has completed
>> before moving to next state. Qemu reports this as boolean (not
>> enclosed within quotes). Therefore it is not correct to use
>> virJSONValueObjectGetString but virJSONValueObjectGetBoolean instead.
>> ---
>>
>> Meanwhile, this is does no harm for now, since we fail to set
>> QEMU_CAPS_SEAMLESS_MIGRATION as we use querying capabilities on
>> the QMP monitor where 'seamless-migration=[on|off]' cmd line
>> option is not advertised. However, on some distros where we still
>> compute capabilities by parsing '-help' output we fail.
>>
>>  src/qemu/qemu_monitor_json.c |    5 +----
>>  1 files changed, 1 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
>> index 2daf8ea..8087e4f 100644
>> --- a/src/qemu/qemu_monitor_json.c
>> +++ b/src/qemu/qemu_monitor_json.c
>> @@ -2399,7 +2399,6 @@ qemuMonitorJSONSpiceGetMigrationStatusReply(virJSONValuePtr reply,
>>                                              bool *spice_migrated)
>>  {
>>      virJSONValuePtr ret;
>> -    const char *migrated_str;
>>  
>>      if (!(ret = virJSONValueObjectGet(reply, "return"))) {
>>          virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>> @@ -2407,13 +2406,11 @@ qemuMonitorJSONSpiceGetMigrationStatusReply(virJSONValuePtr reply,
>>          return -1;
>>      }
>>  
>> -    if (!(migrated_str = virJSONValueObjectGetString(ret, "migrated"))) {
>> +    if (virJSONValueObjectGetBoolean(ret, "migrated", spice_migrated) < 0) {
>>          /* Deliberately don't report error here as we are
>>           * probably dealing with older qemu which doesn't
>>           * report this yet. Pretend spice is migrated. */
>>          *spice_migrated = true;
>> -    } else {
>> -        *spice_migrated = STREQ(migrated_str, "true");
>>      }
>>  
>>      return 0;
>>
> 
> ACK,
> 
> Martin
> 

Thanks, pushed.

Michal




More information about the libvir-list mailing list