# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1214942997 25200
# Node ID da0aebe9e441c2a0020fad9d063c489026eee2b2
# Parent 0c3bd5f782c4776719799ad5c74226c95e70092e
[TEST] #2 A few migration related fixes.
Fixes:
-Remove destroy_and_undefine_domain() call from migrate_guest_to_host(). This call takes
the domain name as a parameter, but migrate_guest_to_host() doesn't take the domain
name So calling destroy_and_undefine_domain() resulted in an error.
-Add a hack to get_typed_class() so it supports Virt_MigrationJob (which doesn't fit
the typical <virt>_<basename> pattern.
Updates from 1 to 2:
-Improve error catching / reporting in start_guest_get_ref()
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 0c3bd5f782c4 -r da0aebe9e441
suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py Fri
Jun 27 09:57:11 2008 +0800
+++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py Tue
Jul 01 13:09:57 2008 -0700
@@ -42,19 +42,26 @@
def start_guest_get_ref(ip, guest_name):
try:
xmlfile = testxml(guest_name)
- define_test_domain(xmlfile, ip)
+ ret = define_test_domain(xmlfile, ip)
+ if not ret:
+ return FAIL, None
- start_test_domain(guest_name, ip)
+ ret = start_test_domain(guest_name, ip)
+ if not ret:
+ return FAIL, None
+
time.sleep(10)
except Exception:
logger.error("Error creating domain %s" % guest_name)
- destroy_and_undefine_domain(guest_name, options.ip)
return FAIL, None
classname = 'Xen_ComputerSystem'
cs_ref = CIMInstanceName(classname, keybindings = {
'Name':guest_name,
'CreationClassName':classname})
+
+ if cs_ref is None:
+ return FAIL, None
return PASS, cs_ref
@@ -80,6 +87,7 @@
status, cs_ref = start_guest_get_ref(options.ip, dom_name)
if status != PASS:
+ destroy_and_undefine_domain(guest_name, options.ip)
return FAIL
guest_name = cs_ref['Name']
@@ -90,10 +98,10 @@
return FAIL
status, ret = migrate_guest_to_host(service, cs_ref, target_ip)
-
if status == FAIL:
logger.error("MigrateVirtualSystemToHost: unexpected list length %s"
% len(ret))
+ destroy_and_undefine_domain(dom_name, options.ip)
return status
elif len(ret) == 2:
id = ret[1]['Job'].keybindings['InstanceID']
@@ -102,7 +110,7 @@
guest_name, local_migrate)
- destroy_and_undefine_domain(dom_name, options.ip)
+ destroy_and_undefine_domain(dom_name, options.ip)
return status
diff -r 0c3bd5f782c4 -r da0aebe9e441
suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py Fri
Jun 27 09:57:11 2008 +0800
+++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py Tue
Jul 01 13:09:57 2008 -0700
@@ -145,12 +145,11 @@
logger.info("Migrating guest with the following options:")
logger.info("%s" % item)
- status, ret = migrate_guest_to_host(service, cs_ref, target_ip,
- item)
-
+ status, ret = migrate_guest_to_host(service, cs_ref, target_ip, item)
if status == FAIL:
logger.error("MigrateVirtualSystemToHost: unexpected list length
%s"
% len(ret))
+ destroy_and_undefine_domain(dom_name, options.ip)
return status
elif len(ret) == 2:
id = ret[1]['Job'].keybindings['InstanceID']
diff -r 0c3bd5f782c4 -r da0aebe9e441 suites/libvirt-cim/lib/XenKvmLib/classes.py
--- a/suites/libvirt-cim/lib/XenKvmLib/classes.py Fri Jun 27 09:57:11 2008 +0800
+++ b/suites/libvirt-cim/lib/XenKvmLib/classes.py Tue Jul 01 13:09:57 2008 -0700
@@ -23,7 +23,8 @@
def get_typed_class(virt, basename):
if virt not in virt_types:
- raise ValueError('Invalid class type')
+ if virt != "Virt" and basename != "MigrationJob":
+ raise ValueError('Invalid class type')
if basename == None or basename == '':
raise ValueError('Invalide class base name')
diff -r 0c3bd5f782c4 -r da0aebe9e441 suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py Fri Jun 27 09:57:11 2008 +0800
+++ b/suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py Tue Jul 01 13:09:57 2008 -0700
@@ -95,10 +95,10 @@
except Exception, details:
logger.error("Error invoke method
'MigrateVirtualSystemToHost\'.")
logger.error("%s", details)
+ return FAIL, ret
if len(ret) == 0:
logger.error("MigrateVirtualSystemToHost returns an empty list")
- destroy_and_undefine_domain(test_dom, ip)
return FAIL, ret
return PASS, ret