[PATCH 0 of 2] [TEST] KVM support for ResourcePool

# HG changeset patch # User Zhengang Li <lizg@cn.ibm.com> # Date 1208504885 -28800 # Node ID bfe3dacf592cfe97244b3ce3e979ca39fed5c8d7 # Parent c1d9b3ba06ca4c76fe9b1cf63a77a7f92bb01d22 [TEST] Add KVM support for ResourcePool.01 Signed-off-by: Zhengang Li <lizg@cn.ibm.com> diff -r c1d9b3ba06ca -r bfe3dacf592c suites/libvirt-cim/cimtest/ResourcePool/01_enum.py --- a/suites/libvirt-cim/cimtest/ResourcePool/01_enum.py Thu Apr 17 10:12:46 2008 +0800 +++ b/suites/libvirt-cim/cimtest/ResourcePool/01_enum.py Fri Apr 18 15:48:05 2008 +0800 @@ -26,25 +26,28 @@ import sys import os -from VirtLib import utils from distutils.file_util import move_file -from XenKvmLib import enumclass +from XenKvmLib.enumclass import enumerate +from XenKvmLib.classes import get_typed_class +from XenKvmLib import vxml from CimTest import Globals from CimTest.Globals import log_param, logger, do_main from CimTest.ReturnCodes import PASS, FAIL, SKIP from VirtLib.live import net_list -from XenKvmLib.test_xml import netxml -from XenKvmLib.test_doms import create_vnet from XenKvmLib.vsms import RASD_TYPE_PROC, RASD_TYPE_MEM, RASD_TYPE_NET_ETHER, \ RASD_TYPE_DISK -sup_types = ['Xen'] +sup_types = ['Xen', 'KVM'] test_dpath = "foo" disk_file = '/tmp/diskpool.conf' back_disk_file = disk_file + "." + "resourcepool_enum" diskid = "%s/%s" % ("DiskPool", test_dpath) +dp_cn = 'DiskPool' +mp_cn = 'MemoryPool' +pp_cn = 'ProcessorPool' +np_cn = 'NetworkPool' def conf_file(): """ @@ -80,8 +83,7 @@ def clean_up_restore(): logger.error("Failed to Disk Conf file") return status -def init_list(server): - global pool_list +def init_list(server, virt): status = PASS os.system("rm -f %s" % back_disk_file ) if not (os.path.exists(disk_file)): @@ -90,35 +92,36 @@ def init_list(server): move_file(disk_file, back_disk_file) status = conf_file() if status != PASS: - return status - vir_network = net_list(server) + return status, None + vir_network = net_list(server, virt) if len(vir_network) > 0: test_network = vir_network[0] else: bridgename = 'testbridge' test_network = 'default-net' - net_xml, bridge = netxml(server, bridgename, test_network) - ret = create_vnet(server, net_xml) + netxml = vxml.NetXML(server, bridgename, test_network, virt) + ret = netxml.create_vnet() if not ret: logger.error("Failed to create the Virtual Network '%s'", \ test_network) - return SKIP - disk_instid = 'DiskPool/%s' %test_dpath - net_instid = 'NetworkPool/%s' %test_network - pool_list = { - 'Xen_MemoryPool' : ['MemoryPool/0', RASD_TYPE_MEM], \ - 'Xen_ProcessorPool' : ['ProcessorPool/0', RASD_TYPE_PROC], \ - 'Xen_DiskPool' : [disk_instid, RASD_TYPE_DISK], \ - 'Xen_NetworkPool' : [net_instid, RASD_TYPE_NET_ETHER] - } - return status + return SKIP, None + disk_instid = '%s/%s' % (dp_cn, test_dpath) + net_instid = '%s/%s' % (np_cn, test_network) + mem_instid = '%s/0' % mp_cn + proc_instid = '%s/0' % pp_cn + pool_list = { + get_typed_class(virt, mp_cn) : [mem_instid, RASD_TYPE_MEM], + get_typed_class(virt, pp_cn) : [proc_instid, RASD_TYPE_PROC], + get_typed_class(virt, dp_cn) : [disk_instid, RASD_TYPE_DISK], + get_typed_class(virt, np_cn) : [net_instid, RASD_TYPE_NET_ETHER] + } + return status, pool_list def print_error(fieldname="", ret_value="", exp_value=""): logger.error("%s Mismatch", fieldname) logger.error("Returned %s instead of %s", ret_value, exp_value) -def verify_fields(poolname, cn): - global pool_list +def verify_fields(pool_list, poolname, cn): status = PASS if len(poolname) < 1: logger.error("%s return %i instances, expected atleast 1 instance" \ @@ -139,50 +142,45 @@ def verify_fields(poolname, cn): @do_main(sup_types) def main(): - options = main.options + ip = main.options.ip + virt = main.options.virt log_param() - global pool_list - server = options.ip - status = init_list(server) + status, pool_list = init_list(ip, virt) if status != PASS: logger.error("Failed to initialise the list") return status key_list = ["InstanceID"] + try: - mempool = enumclass.enumerate(options.ip, - enumclass.Xen_MemoryPool, - key_list) + mempool = enumerate(ip, mp_cn, key_list, virt) except Exception: - logger.error(Globals.CIM_ERROR_ENUMERATE % enumclass.Xen_MemoryPool) + logger.error(Globals.CIM_ERROR_ENUMERATE % mp_cn) return FAIL - status = verify_fields(poolname=mempool, cn='Xen_MemoryPool') + status = verify_fields(pool_list, mempool, get_typed_class(virt, mp_cn)) + try: - propool = enumclass.enumerate(options.ip, - enumclass.Xen_ProcessorPool, - key_list) + propool = enumerate(ip, pp_cn, key_list, virt) except Exception: - logger.error(Globals.CIM_ERROR_ENUMERATE % enumclass.Xen_ProcessorPool) + logger.error(Globals.CIM_ERROR_ENUMERATE % pp_cn) return FAIL - - status = verify_fields(poolname=propool, cn='Xen_ProcessorPool') + status = verify_fields(pool_list, propool, get_typed_class(virt, pp_cn)) + try: - diskpool = enumclass.enumerate(options.ip, - enumclass.Xen_DiskPool, - key_list) + diskpool = enumerate(ip, dp_cn, key_list, virt) except Exception: - logger.error(Globals.CIM_ERROR_ENUMERATE % enumclass.Xen_DiskPool) + logger.error(Globals.CIM_ERROR_ENUMERATE % dp_cn) return FAIL - status = verify_fields(poolname=diskpool, cn='Xen_DiskPool') + status = verify_fields(pool_list, diskpool, get_typed_class(virt, dp_cn)) + try: - netpool = enumclass.enumerate(options.ip, - enumclass.Xen_NetworkPool, - key_list) + netpool = enumerate(ip, np_cn, key_list, virt) except Exception: - logger.error(Globals.CIM_ERROR_ENUMERATE % enumclass.Xen_NetworkPool) + logger.error(Globals.CIM_ERROR_ENUMERATE % np_cn) return FAIL - status = verify_fields(poolname=netpool, cn='Xen_NetworkPool') + status = verify_fields(pool_list, netpool, get_typed_class(virt, np_cn)) + status = clean_up_restore() return status

# HG changeset patch # User Zhengang Li <lizg@cn.ibm.com> # Date 1208506357 -28800 # Node ID a3b6354aa1fd6cd95a99a0abf877b4994ec0c839 # Parent bfe3dacf592cfe97244b3ce3e979ca39fed5c8d7 [TEST] Add KVM support to ResourcePool.02 Signed-off-by: Zhengang Li <lizg@cn.ibm.com> diff -r bfe3dacf592c -r a3b6354aa1fd suites/libvirt-cim/cimtest/ResourcePool/02_rp_gi_errors.py --- a/suites/libvirt-cim/cimtest/ResourcePool/02_rp_gi_errors.py Fri Apr 18 15:48:05 2008 +0800 +++ b/suites/libvirt-cim/cimtest/ResourcePool/02_rp_gi_errors.py Fri Apr 18 16:12:37 2008 +0800 @@ -28,25 +28,24 @@ import os import os import sys import pywbem -from VirtLib import utils from VirtLib.live import net_list from XenKvmLib import assoc -from XenKvmLib.test_xml import netxml -from XenKvmLib.test_doms import create_vnet +from XenKvmLib import vxml from XenKvmLib.common_util import try_getinstance +from XenKvmLib.classes import get_typed_class from distutils.file_util import move_file from CimTest.ReturnCodes import PASS, SKIP from CimTest.Globals import log_param, logger, CIM_USER, CIM_PASS, CIM_NS from CimTest.Globals import do_main -sup_types = ['Xen'] +sup_types = ['Xen', 'KVM'] expr_values = { - "invalid_keyname" : { 'rc' : pywbem.CIM_ERR_FAILED, \ - 'desc' : 'Missing InstanceID' }, \ - "invalid_keyvalue" : { 'rc' : pywbem.CIM_ERR_NOT_FOUND, \ - 'desc' : 'No such instance (Invalid_Keyvalue)'} - } + "invalid_keyname" : { 'rc' : pywbem.CIM_ERR_FAILED, + 'desc' : 'Missing InstanceID' }, + "invalid_keyvalue" : { 'rc' : pywbem.CIM_ERR_NOT_FOUND, + 'desc' : 'No such instance (Invalid_Keyvalue)'} + } test_dpath = "foo" disk_file = '/tmp/diskpool.conf' @@ -80,51 +79,52 @@ def clean_up_restore(): sys.exit(status) -def err_invalid_instid_keyname(classname, InstanceID): -# Input: -# ------ -# wbemcli gi '<scheme>://[user:pwd@]<host>:<port>/<namespace:<ClassName>. -# Invalid_Keyname="<InstanceID>"' -# -# Output: -# ------- -# error code : CIM_ERR_FAILED -# error desc : "Missing InstanceID" -# - key = { - 'Invalid_Keyname' : InstanceID - } - return try_getinstance(conn, classname, key, field_name='INVALID_InstID_KeyName', \ - expr_values=expr_values['invalid_keyname'], bug_no="") +def err_invalid_instid_keyname(classname, instid): + # Input: + # ------ + # wbemcli gi '<scheme>://[user:pwd@]<host>:<port>/<namespace:<ClassName>. + # Invalid_Keyname="<InstanceID>"' + # + # Output: + # ------- + # error code : CIM_ERR_FAILED + # error desc : "Missing InstanceID" + # + key = {'Invalid_Keyname' : instid} + return try_getinstance(conn, classname, key, + field_name='INVALID_InstID_KeyName', + expr_values=expr_values['invalid_keyname'], + bug_no="") def err_invalid_instid_keyvalue(classname): -# Input: -# ------ -# wbemcli gi '<scheme>://[user:pwd@]<host>:<port>/<namespace:<ClassName>. -# InstanceID="Invalid_Keyvalue" -# -# Output: -# ------- -# error code : CIM_ERR_NOT_FOUND -# error desc : "No such instance (Invalid_Keyvalue)" -# - key = { - 'InstanceID' : 'Invalid_Keyvalue' - } - return try_getinstance(conn, classname, key, field_name='INVALID_InstID_KeyValue', \ - expr_values=expr_values['invalid_keyvalue'], bug_no="") + # Input: + # ------ + # wbemcli gi '<scheme>://[user:pwd@]<host>:<port>/<namespace:<ClassName>. + # InstanceID="Invalid_Keyvalue" + # + # Output: + # ------- + # error code : CIM_ERR_NOT_FOUND + # error desc : "No such instance (Invalid_Keyvalue)" + # + key = {'InstanceID' : 'Invalid_Keyvalue'} + return try_getinstance(conn, classname, key, + field_name='INVALID_InstID_KeyValue', + expr_values=expr_values['invalid_keyvalue'], + bug_no="") @do_main(sup_types) def main(): - options = main.options + ip = main.options.ip + virt = main.options.virt status = PASS log_param() - server = options.ip global conn - conn = assoc.myWBEMConnection('http://%s' % options.ip, (CIM_USER, CIM_PASS), CIM_NS) + conn = assoc.myWBEMConnection('http://%s' % ip, (CIM_USER, CIM_PASS), + CIM_NS) # Taking care of already existing diskconf file @@ -135,27 +135,27 @@ def main(): move_file(disk_file, back_disk_file) conf_file() - vir_network = net_list(server) + vir_network = net_list(ip, virt) if len(vir_network) > 0: test_network = vir_network[0] else: bridgename = 'testbridge' test_network = 'default-net' - net_xml, bridge = netxml(server, bridgename, test_network) - ret = create_vnet(server, net_xml) + netxml = vxml.NetXML(ip, bridgename, test_network, virt) + ret = netxml.create_vnet() if not ret: - logger.error("Failed to create the Virtual Network '%s'", \ - test_network) + logger.error("Failed to create the Virtual Network '%s'", + test_network) clean_up_restore() return SKIP netid = "%s/%s" % ("NetworkPool", test_network) cn_instid_list = { - "Xen_DiskPool" : "DiskPool/foo", \ - "Xen_MemoryPool" : "MemoryPool/0", \ - "Xen_NetworkPool" : netid, \ - "Xen_ProcessorPool": "ProcessorPool/0" - } + get_typed_class(virt, "DiskPool") : "DiskPool/foo", + get_typed_class(virt, "MemoryPool") : "MemoryPool/0", + get_typed_class(virt, "NetworkPool") : netid, + get_typed_class(virt, "ProcessorPool") : "ProcessorPool/0" + } for cn, instid in cn_instid_list.items(): ret_value = err_invalid_instid_keyname(cn, instid)
participants (2)
-
Kaitlin Rupert
-
zli@linux.vnet.ibm.com