[Libvirt-cim] [PATCH 3 of 4] [TEST] Adding support for remote migration in the vsmigrations library

Deepti B Kalakeri deeptik at linux.vnet.ibm.com
Fri Mar 13 12:20:23 UTC 2009



Kaitlin Rupert wrote:
>>
>> -def get_migration_job_instance(ip, virt, id):
>> +def get_migration_job_instance(src_ip, virt, id):
>> job = []
>> - key_list = ["instanceid"]
>> - curr_cim_rev, changeset = get_provider_version(virt, ip)
>> + curr_cim_rev, changeset = get_provider_version(virt, src_ip)
>> if curr_cim_rev < libvirt_mig_changes:
>> mig_job_cn = 'Virt_MigrationJob'
>> else:
>> mig_job_cn = get_typed_class(virt, 'MigrationJob')
>>
>> try:
>> - job = enumclass.EnumInstances(ip, mig_job_cn)
>> + job = enumclass.EnumInstances(src_ip, mig_job_cn)
>> + if len(job) < 1:
>
> Can you print an error here indicating that no job instances were 
> returned?
>
>
>>
>> -def verify_domain_list(list, local_migrate, test_dom):
>> - status = PASS
>> - if local_migrate == 0 and test_dom not in list:
>> - status = FAIL
>> - if local_migrate == 1 and test_dom in list:
>> +def verify_domain_list(remote_migrate, test_dom, src_ip, target_ip):
>> + status = FAIL
>> + list_src = domain_list(src_ip)
>> + if remote_migrate == 0:
>> + if test_dom in list_src:
>> + status = PASS
>> + elif remote_migrate == 1 :
>> + list_target = domain_list(target_ip)
>
> The verification fails for me when migrating a KVM guest. Here's the 
> error message I see:
>
> VirtualSystemMigrationService - 06_remote_migration.py: FAIL
> ERROR - Migration verification for 'f10_test' failed
>
> You'll need to specify the virtualization type - otherwise, it calls 
> domain_list() for Xen hyp. Here's what I see when I print the contents 
> of the list_src and list_target:
>
> ['Xen', 'Xen', 'failed']
>
>> + if test_dom not in list_src and test_dom in list_target:
>> + status = PASS
>> + else:
>> + logger.error("Invalid migration option")
>> +
>> + if status != PASS:
>> + logger.error("Migration verification for '%s' failed", test_dom)
>> + return status +
>> + return status
>> +
>> +def check_migration_job(src_ip, id, target_ip, test_dom, + 
>> remote_migrate, virt='Xen', timeout=50):
>> + try:
>> + status, job_inst = get_migration_job_instance(src_ip, virt, id)
>> + if status != PASS:
>> + logger.error("Unable to get mig_job instance for '%s'", test_dom)
>> + return FAIL
>> +
>> status = FAIL
>>
>> - if status != PASS:
>> - logger.error("%s migrate failed", test_dom)
>> + for i in range(0, timeout):
>> + if job_inst.JobState == CIM_JOBSTATE_COMPLETE:
>> + sleep(3)
>> + if job_inst.Status != "Completed":
>> + logger.error("Failed to set the status for the migrated " \
>> + "dom: '%s'", test_dom)
>
> Can you also print the job_inst.Status as well? Right now, libvirt 
> doesn't print much when a migration fails, but it might print more 
> info in the future.
>

I shall take care of these.

-- 
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list