[PATCH 0 of 4] [TEST] add KVM & XenFV support for VirtualSystemMigrationService

# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1208246116 25200 # Node ID b5fadaed5253eded648bec77627a9024184381c4 # Parent 137e5079c73fcbfc70e6654cee0b3c3eb3c6acd2 [TEST] add KVM_VirtualSystemMigrationService class Signed-off-by: Guolian Yun <yunguol@cn.ibm.com> diff -r 137e5079c73f -r b5fadaed5253 suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py --- a/suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py Fri Apr 11 16:58:23 2008 +0530 +++ b/suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py Tue Apr 15 00:55:16 2008 -0700 @@ -42,6 +42,10 @@ class Xen_VirtualSystemMigrationService( class Xen_VirtualSystemMigrationService(CIM_VirtualSystemMigrationService): def __init__(self, server): CIM_VirtualSystemMigrationService.__init__(self, server, 'Xen') + +class KVM_VirtualSystemMigrationService(CIM_VirtualSystemMigrationService): + def __init__(self, server): + CIM_VirtualSystemMigrationService.__init__(self, server, 'KVM') # classes to define VirtualSystemMigrationSettingData parameters class CIM_VirtualSystemMigrationSettingData(CIMClassMOF):

# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1208246537 25200 # Node ID 4d0718ea831bdca73ff95d4c8fafccc28af3753d # Parent b5fadaed5253eded648bec77627a9024184381c4 [TEST] Add KVM & XenFV support for VirtualSystemMigrationService.01 Signed-off-by: Guolian Yun <yunguol@cn.ibm.com> diff -r b5fadaed5253 -r 4d0718ea831b suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py --- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py Tue Apr 15 00:55:16 2008 -0700 +++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py Tue Apr 15 01:02:17 2008 -0700 @@ -31,27 +31,28 @@ from XenKvmLib.test_xml import * from XenKvmLib.test_xml import * from XenKvmLib import computersystem from XenKvmLib import vsmigrations +from XenKvmLib import vxml +from XenKvmLib.classes import get_typed_class from XenKvmLib.vsmigrations import check_possible_host_migration, migrate_guest_to_host, check_migration_job from XenKvmLib import enumclass from CimTest.Globals import log_param, logger, CIM_ERROR_ENUMERATE, do_main from CimTest.ReturnCodes import PASS, FAIL, XFAIL -sup_types = ['Xen'] +sup_types = ['Xen', 'XenFV', 'KVM'] dom_name = 'dom_migrate' -def start_guest_get_ref(ip, guest_name): +def start_guest_get_ref(ip, guest_name, virt='Xen'): try: - xmlfile = testxml(guest_name) - define_test_domain(xmlfile, ip) - - start_test_domain(guest_name, ip) + virt_xml = vxml.get_class(virt) + cxml = virt_xml(guest_name) + ret = cxml.create(ip) 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' + + classname = get_typed_class(virt, 'ComputerSystem') cs_ref = CIMInstanceName(classname, keybindings = { 'Name':guest_name, 'CreationClassName':classname}) @@ -66,9 +67,9 @@ def main(): rc = -1 try: - service = vsmigrations.Xen_VirtualSystemMigrationService(options.ip) + service = eval('vsmigrations.' + get_typed_class(options.virt, "VirtualSystemMigrationService"))(options.ip) except Exception: - logger.error("Error getting inst of Xen_VirtualSystemMigrationService") + logger.error("Error getting inst of VirtualSystemMigrationService") return FAIL #This value can be changed to a different target host. @@ -79,7 +80,7 @@ def main(): else: local_migrate = 0 - status, cs_ref = start_guest_get_ref(options.ip, dom_name) + status, cs_ref = start_guest_get_ref(options.ip, dom_name, options.virt) if status != PASS: return FAIL @@ -102,9 +103,7 @@ def main(): status = check_migration_job(options.ip, id, target_ip, guest_name, local_migrate) - - destroy_and_undefine_domain(dom_name, options.ip) - + destroy_and_undefine_domain(dom_name, options.ip) return status if __name__ == "__main__":

# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1208246719 25200 # Node ID cc0804a7049ccf7cbb2274ec97a82b6c0c0fd9fd # Parent 4d0718ea831bdca73ff95d4c8fafccc28af3753d [TEST] Add KVM & XenFV support for VirtualSystemMigrationService.02 Signed-off-by: Guolian Yun <yunguol@cn.ibm.com> diff -r 4d0718ea831b -r cc0804a7049c suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py --- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py Tue Apr 15 01:02:17 2008 -0700 +++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py Tue Apr 15 01:05:19 2008 -0700 @@ -29,32 +29,35 @@ from XenKvmLib.test_xml import * from XenKvmLib.test_xml import * from XenKvmLib import computersystem from XenKvmLib import vsmigrations +from XenKvmLib import vxml +from XenKvmLib.classes import get_typed_class from XenKvmLib.vsmigrations import check_possible_host_migration, migrate_guest_to_host, check_migration_job from XenKvmLib import enumclass from CimTest.Globals import log_param, logger, CIM_ERROR_ENUMERATE, do_main from CimTest.ReturnCodes import PASS, FAIL, XFAIL -sup_types = ['Xen'] +sup_types = ['Xen', 'XenFV', 'KVM'] dom_name = 'dom_migrate' -def define_guest_get_ref(ip, guest_name): +def define_guest_get_ref(ip, guest_name, virt='Xen'): try: - xmlfile = testxml(guest_name) - define_test_domain(xmlfile, ip) + virt_xml = vxml.get_class(virt) + cxml = virt_xml(guest_name) + ret = cxml.define(ip) except Exception: logger.error("Error define domain %s" % guest_name) destroy_and_undefine_domain(guest_name, options.ip) return FAIL, None - classname = 'Xen_ComputerSystem' + classname = get_typed_class(virt, 'ComputerSystem') cs_ref = CIMInstanceName(classname, keybindings = { 'Name':guest_name, 'CreationClassName':classname}) return PASS, cs_ref -def setup_env(ip, migration_list, local_migrate): +def setup_env(ip, migration_list, local_migrate, virt='Xen'): ref_list = [] if local_migrate == 1: @@ -65,7 +68,7 @@ def setup_env(ip, migration_list, local_ return FAIL, None ref_list.append(ref) else: - status, ref = define_guest_get_ref(ip, dom_name) + status, ref = define_guest_get_ref(ip, dom_name, virt) if status != PASS: return FAIL, None ref_list.append(ref) @@ -107,11 +110,11 @@ def main(): log_param() status = PASS rc = -1 - + try: - service = vsmigrations.Xen_VirtualSystemMigrationService(options.ip) + service = eval('vsmigrations.' + get_typed_class(options.virt, "VirtualSystemMigrationService"))(options.ip) except Exception: - logger.error("Error getting inst of Xen_VirtualSystemMigrationService") + logger.error("Error getting inst of VirtualSystemMigrationService") return FAIL #This value can be changed to a different target host. @@ -127,7 +130,7 @@ def main(): ref_list = [] cs_ref = None - status, ref_list = setup_env(options.ip, mlist, local_migrate) + status, ref_list = setup_env(options.ip, mlist, local_migrate, options.virt) if status != PASS or len(ref_list) < 1: return FAIL

# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1208246802 25200 # Node ID 078ba6cad8417f89daa8f968db4b2b8102263efa # Parent cc0804a7049ccf7cbb2274ec97a82b6c0c0fd9fd [TEST] Add KVM & XenFV suppport for VirtualSystemMigrationService.05 Signed-off-by: Guolian Yun <yunguol@cn.ibm.com> diff -r cc0804a7049c -r 078ba6cad841 suites/libvirt-cim/cimtest/VirtualSystemMigrationService/05_migratable_host_errs.py --- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/05_migratable_host_errs.py Tue Apr 15 01:05:19 2008 -0700 +++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/05_migratable_host_errs.py Tue Apr 15 01:06:42 2008 -0700 @@ -28,10 +28,12 @@ from XenKvmLib.test_xml import * from XenKvmLib.test_xml import * from XenKvmLib import computersystem from XenKvmLib import vsmigrations +from XenKvmLib import vxml +from XenKvmLib.classes import get_typed_class from CimTest.Globals import log_param, logger, do_main from CimTest.ReturnCodes import PASS, FAIL, XFAIL -sup_types = ['Xen'] +sup_types = ['Xen', 'XenFV', 'KVM'] test_dom = 'dom_migration' exp_rc = 1 #CIM_ERR_FAILED @@ -41,30 +43,24 @@ def main(): def main(): options = main.options log_param() - xmlfile = testxml(test_dom) status = FAIL rc = -1 - - try: - define_test_domain(xmlfile, options.ip) - except Exception: - logger.error("Error define domain %s" % test_dom) + + virt_xml = vxml.get_class(options.virt) + cxml = virt_xml(test_dom) + ret = cxml.create(options.ip) + if not ret: + logger.error('Unable to create domain %s' % test_dom) return FAIL try: - start_test_domain(test_dom, options.ip) + service = eval('vsmigrations.' + get_typed_class(options.virt, "VirtualSystemMigrationService"))(options.ip) except Exception: - logger.error("Error start domain %s" % test_dom) - return FAIL - - try: - service = vsmigrations.Xen_VirtualSystemMigrationService(options.ip) - except Exception: - logger.error("Error when go to the class of Xen_VirtualSystemMigrationService") + logger.error("Error when go to the class of VirtualSystemMigrationService") return FAIL - classname = 'Xen_ComputerSystem' + classname = get_typed_class(options.virt, 'ComputerSystem') cs_ref = CIMInstanceName(classname, keybindings = { 'Wrong':test_dom, 'CreationClassName':classname}) @@ -88,7 +84,9 @@ def main(): if rc == 0: logger.error('Migrate to host method should NOT return OK with a wrong key input') - destroy_and_undefine_domain(test_dom, options.ip) + cxml.destroy(options.ip) + cxml.undefine(options.ip) + return status if __name__ == "__main__":

Guo Lian Yun wrote:
Signed-off-by: Guolian Yun <yunguol@cn.ibm.com>
Libvirt doesn't support KVM migration yet, so these tests will need to be skipped for KVM. Also, the providers don't support localhost migration due to recent migration provider changes. Until a fix for this goes in, we won't be able to test these changes. Can you hold off on this patchset until localhost migration is available in the provider again? Also, please don't submit patches unless they've been tested (and the test passes or skips appropriately) on all platforms. Thanks! -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com
participants (2)
-
Guo Lian Yun
-
Kaitlin Rupert