
# HG changeset patch # User Zhengang Li <lizg@cn.ibm.com> # Date 1209373236 -28800 # Node ID 5ed6cd841f7b65eeea4af7af845c4ebfc2da4cf1 # Parent 22ed2c7c77e8ff3d96b40f1e0db2a931b5a7c37e [TEST] Add revision branch to RASD.01 & 02 - Added prev & mrev for 'proc' vs. '0', 'KiloBytes' vs. 'MegaBytes' issue. - Updated style format. - Added commonly used class name in XenKvmLib.rasd Signed-off-by: Zhengang Li <lizg@cn.ibm.com> diff -r 22ed2c7c77e8 -r 5ed6cd841f7b suites/libvirt-cim/cimtest/RASD/01_verify_rasd_fields.py --- a/suites/libvirt-cim/cimtest/RASD/01_verify_rasd_fields.py Fri Apr 25 03:20:54 2008 -0700 +++ b/suites/libvirt-cim/cimtest/RASD/01_verify_rasd_fields.py Mon Apr 28 17:00:36 2008 +0800 @@ -47,18 +47,14 @@ import sys -from XenKvmLib import enumclass -from VirtLib import utils from CimTest import Globals from CimTest.Globals import do_main from XenKvmLib.test_doms import destroy_and_undefine_all -import XenKvmLib from XenKvmLib import assoc from XenKvmLib import vxml -from XenKvmLib.vxml import XenXML, KVMXML, get_class from XenKvmLib.classes import get_typed_class -from XenKvmLib.rasd import verify_procrasd_values, verify_netrasd_values, \ -verify_diskrasd_values, verify_memrasd_values +from XenKvmLib import rasd +from XenKvmLib.const import CIM_REV from CimTest.Globals import logger from CimTest.ReturnCodes import PASS, FAIL @@ -68,42 +64,40 @@ test_vcpus = 1 test_vcpus = 1 test_mem = 128 test_mac = "00:11:22:33:44:aa" +prev = 531 +mrev = 529 def init_list(xml, disk, virt="Xen"): """ Creating the lists that will be used for comparisons. """ procrasd = { - "InstanceID" : '%s/%s' %(test_dom, "proc"),\ - "ResourceType" : 3,\ - "CreationClassName": get_typed_class(virt, 'ProcResourceAllocationSettingData') - } - + "InstanceID" : '%s/%s' % (test_dom, + CIM_REV < prev and "0" or "proc"), + "ResourceType" : 3, + "CreationClassName" : get_typed_class(virt, rasd.pasd_cn)} netrasd = { - "InstanceID" : '%s/%s' %(test_dom,test_mac), \ - "ResourceType" : 10 , \ - "ntype1": "bridge", \ - "ntype2": "ethernet", \ - "CreationClassName": get_typed_class(virt, 'NetResourceAllocationSettingData') - } - + "InstanceID" : '%s/%s' % (test_dom,test_mac), + "ResourceType" : 10 , + "ntype1" : "bridge", + "ntype2" : "ethernet", + "CreationClassName" : get_typed_class(virt, rasd.nasd_cn)} address = xml.xml_get_disk_source() diskrasd = { - "InstanceID" : '%s/%s' %(test_dom, disk), \ - "ResourceType" : 17, \ - "Address" : address, \ - "CreationClassName": get_typed_class(virt, 'DiskResourceAllocationSettingData') - } + "InstanceID" : '%s/%s' % (test_dom, disk), + "ResourceType" : 17, + "Address" : address, + "CreationClassName" : get_typed_class(virt, rasd.dasd_cn)} memrasd = { - "InstanceID" : '%s/%s' %(test_dom, "mem"), \ - "ResourceType" : 4, \ - "AllocationUnits" : "KiloBytes",\ - "VirtualQuantity" : (test_mem * 1024), \ - "CreationClassName": get_typed_class(virt, 'MemResourceAllocationSettingData') - } + "InstanceID" : '%s/%s' % (test_dom, "mem"), + "ResourceType" : 4, + "AllocationUnits" : CIM_REV < mrev and "MegaBytes" or "KiloBytes", + "VirtualQuantity" : (test_mem * 1024), + "CreationClassName" : get_typed_class(virt, rasd.masd_cn)} + return procrasd, netrasd, diskrasd, memrasd -def assoc_values(ip, assoc_info, xml, disk, virt="Xen"): +def assoc_values(assoc_info, xml, disk, virt="Xen"): procrasd, netrasd, diskrasd, memrasd = init_list(xml, disk, virt) proc_status = 1 net_status = 0 @@ -111,15 +105,15 @@ def assoc_values(ip, assoc_info, xml, di mem_status = 1 status = 0 try: - for i in range(len(assoc_info)): - if assoc_info[i]['InstanceID'] == procrasd['InstanceID']: - proc_status = verify_procrasd_values(assoc_info[i], procrasd) - elif assoc_info[i]['InstanceID'] == netrasd['InstanceID']: - net_status = verify_netrasd_values(assoc_info[i], netrasd) - elif assoc_info[i]['InstanceID'] == diskrasd['InstanceID']: - disk_status = verify_diskrasd_values(assoc_info[i], diskrasd) - elif assoc_info[i]['InstanceID'] == memrasd['InstanceID']: - mem_status = verify_memrasd_values(assoc_info[i], memrasd) + for res in assoc_info: + if res['InstanceID'] == procrasd['InstanceID']: + proc_status = rasd.verify_procrasd_values(res, procrasd) + elif res['InstanceID'] == netrasd['InstanceID']: + net_status = rasd.verify_netrasd_values(res, netrasd) + elif res['InstanceID'] == diskrasd['InstanceID']: + disk_status = rasd.verify_diskrasd_values(res, diskrasd) + elif res['InstanceID'] == memrasd['InstanceID']: + mem_status = rasd.verify_memrasd_values(res, memrasd) else: status = 1 if status != 0 or proc_status != 0 or net_status != 0 or \ @@ -135,8 +129,7 @@ def assoc_values(ip, assoc_info, xml, di @do_main(sup_types) def main(): options = main.options - status = 0 - rc = 1 + status = PASS destroy_and_undefine_all(options.ip) if options.virt == 'Xen': test_disk = 'xvda' @@ -144,31 +137,32 @@ def main(): test_disk = 'hda' virt_xml = vxml.get_class(options.virt) - cxml = virt_xml(test_dom, mem=test_mem, vcpus = test_vcpus, mac = test_mac, disk = test_disk) + cxml = virt_xml(test_dom, mem=test_mem, vcpus = test_vcpus, + mac = test_mac, disk = test_disk) ret = cxml.create(options.ip) if not ret: logger.error('Unable to create domain %s' % test_dom) return FAIL if status == 1: destroy_and_undefine_all(options.ip) - return 1 + return FAIL if options.virt == "XenFV": instIdval = "Xen:%s" % test_dom else: instIdval = "%s:%s" % (options.virt, test_dom) - + + vssdc_cn = 'VirtualSystemSettingDataComponent' + vssd_cn = 'VirtualSystemSettingData' try: - assoc_info = assoc.Associators(options.ip, \ - 'VirtualSystemSettingDataComponent', \ - 'VirtualSystemSettingData', \ - options.virt, \ + assoc_info = assoc.Associators(options.ip, vssdc_cn, vssd_cn, + options.virt, InstanceID = instIdval) - status = assoc_values(options.ip, assoc_info, cxml, test_disk, options.virt) + status = assoc_values(assoc_info, cxml, test_disk, options.virt) except Exception, details: - logger.error(Globals.CIM_ERROR_ASSOCIATORS, \ - get_typed_class(options.virt, 'VirtualSystemSettingDataComponent')) + logger.error(Globals.CIM_ERROR_ASSOCIATORS, + get_typed_class(options.virt, vssdc_cn)) logger.error("Exception : %s" % details) - status = 1 + status = FAIL try: cxml.destroy(options.ip) diff -r 22ed2c7c77e8 -r 5ed6cd841f7b suites/libvirt-cim/cimtest/RASD/02_enum.py --- a/suites/libvirt-cim/cimtest/RASD/02_enum.py Fri Apr 25 03:20:54 2008 -0700 +++ b/suites/libvirt-cim/cimtest/RASD/02_enum.py Mon Apr 28 17:00:36 2008 +0800 @@ -28,14 +28,13 @@ import sys -import XenKvmLib from XenKvmLib import enumclass from CimTest.Globals import do_main, CIM_ERROR_ENUMERATE from XenKvmLib.test_doms import destroy_and_undefine_all from XenKvmLib.vxml import get_class from XenKvmLib.classes import get_typed_class -from XenKvmLib.rasd import verify_procrasd_values, verify_netrasd_values, \ -verify_diskrasd_values, verify_memrasd_values +from XenKvmLib import rasd +from XenKvmLib.const import CIM_REV from CimTest.Globals import logger from CimTest.ReturnCodes import PASS, FAIL @@ -45,41 +44,39 @@ test_vcpus = 1 test_vcpus = 1 test_mem = 128 test_mac = "00:11:22:33:44:aa" +prev = 531 +mrev = 529 -def init_list(virt="Xen"): +def init_list(virt): """ Creating the lists that will be used for comparisons. """ - procrasd = { - "InstanceID" : '%s/%s' %(test_dom, "proc"),\ - "ResourceType" : 3,\ - "CreationClassName": get_typed_class(virt, 'ProcResourceAllocationSettingData') - } + proc = { + "InstanceID" : '%s/%s' % (test_dom, + CIM_REV < prev and "0" or "proc"), + "ResourceType" : 3, + "CreationClassName" : get_typed_class(virt, rasd.pasd_cn)} + net = { + "InstanceID" : '%s/%s' % (test_dom,test_mac), + "ResourceType" : 10 , + "ntype1" : "bridge", + "ntype2" : "ethernet", + "CreationClassName" : get_typed_class(virt, rasd.nasd_cn)} + address = vsxml.xml_get_disk_source() + disk = { + "InstanceID" : '%s/%s' % (test_dom, test_disk), + "ResourceType" : 17, + "Address" : address, + "CreationClassName" : get_typed_class(virt, rasd.dasd_cn)} + mem = { + "InstanceID" : '%s/%s' % (test_dom, "mem"), + "ResourceType" : 4, + "AllocationUnits" : CIM_REV < mrev and "MegaBytes" or "KiloBytes", + "VirtualQuantity" : (test_mem * 1024), + "CreationClassName" : get_typed_class(virt, rasd.masd_cn)} + return proc, net, disk, mem - netrasd = { - "InstanceID" : '%s/%s' %(test_dom,test_mac), \ - "ResourceType" : 10 , \ - "ntype1": "bridge", \ - "ntype2": "ethernet", \ - "CreationClassName": get_typed_class(virt, 'NetResourceAllocationSettingData') - } - address = vsxml.xml_get_disk_source() - diskrasd = { - "InstanceID" : '%s/%s' %(test_dom, test_disk), \ - "ResourceType" : 17, \ - "Address" : address, \ - "CreationClassName": get_typed_class(virt, 'DiskResourceAllocationSettingData') - } - memrasd = { - "InstanceID" : '%s/%s' %(test_dom, "mem"), \ - "ResourceType" : 4, \ - "AllocationUnits" : "KiloBytes",\ - "VirtualQuantity" : (test_mem * 1024), \ - "CreationClassName": get_typed_class(virt, 'MemResourceAllocationSettingData') - } - return procrasd, netrasd, diskrasd, memrasd - -def get_inst_from_list(classname, rasd_list, filter_name, exp_val): +def get_inst_from_list(server, classname, rasd_list, filter_name, exp_val): status = PASS ret = FAIL inst = [] @@ -94,14 +91,14 @@ def get_inst_from_list(classname, rasd_l status = FAIL return status, inst -def get_rasd_values(classname): +def get_rasd_values(classname, virt, server): status = PASS rasd_list = [] try: - rasd_list = enumclass.enumerate_inst(server, eval('enumclass.' + classname), virt) + rasd_list = enumclass.enumerate_inst(server, classname, virt) if len(rasd_list) < 1: - logger.error("%s returned %i instances, excepted atleast 1 instance", classname, \ - len(rasd_list)) + logger.error("%s returned %i instances, excepted at least 1.", + classname, len(rasd_list)) return FAIL, rasd_list except Exception, detail: logger.error(CIM_ERROR_ENUMERATE, classname) @@ -111,7 +108,8 @@ def get_rasd_values(classname): # Get the RASD info related to the domain "ONLY". # We should get atleast one record. filter_name = {"key" : "InstanceID"} - status, rasd_values = get_inst_from_list(classname, rasd_list, filter_name, test_dom) + status, rasd_values = get_inst_from_list(server, classname, rasd_list, + filter_name, test_dom) if status != PASS or len(rasd_values) == 0: return status, rasd_values @@ -122,14 +120,14 @@ def verify_rasd_values(rasd_values_info) try: for rasd_instance in rasd_values_info: CCName = rasd_instance.classname - if 'ProcResourceAllocationSettingData' in CCName : - status = verify_procrasd_values(rasd_instance, procrasd,) - elif 'NetResourceAllocationSettingData' in CCName : - status = verify_netrasd_values(rasd_instance, netrasd) - elif 'DiskResourceAllocationSettingData' in CCName: - status = verify_diskrasd_values(rasd_instance, diskrasd) - elif 'MemResourceAllocationSettingData' in CCName : - status = verify_memrasd_values(rasd_instance, memrasd) + if rasd.pasd_cn in CCName : + status = rasd.verify_procrasd_values(rasd_instance, procrasd,) + elif rasd.nasd_cn in CCName : + status = rasd.verify_netrasd_values(rasd_instance, netrasd) + elif rasd.dasd_cn in CCName: + status = rasd.verify_diskrasd_values(rasd_instance, diskrasd) + elif rasd.masd_cn in CCName : + status = rasd.verify_memrasd_values(rasd_instance, memrasd) else: status = FAIL if status != PASS: @@ -142,32 +140,31 @@ def verify_rasd_values(rasd_values_info) @do_main(sup_types) def main(): - options = main.options - destroy_and_undefine_all(options.ip) + virt = main.options.virt + server = main.options.ip + destroy_and_undefine_all(server) global test_disk, vsxml - global virt, server global procrasd, netrasd, diskrasd, memrasd - server = options.ip - virt = options.virt if virt == "Xen": test_disk = "xvda" else: test_disk = "hda" - vsxml = get_class(virt)(test_dom, mem=test_mem, vcpus = test_vcpus, mac = test_mac, - disk = test_disk) + virtxml = get_class(virt) + vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus, + mac = test_mac, disk = test_disk) try: - bridge = vsxml.set_vbridge(server) - ret = vsxml.define(options.ip) + vsxml.set_vbridge(server) + ret = vsxml.define(server) if not ret: logger.error("Failed to Define the domain: %s", test_dom) return FAIL except Exception, details: logger.error("Exception : %s", details) return FAIL - class_list = [ get_typed_class(virt, "DiskResourceAllocationSettingData"), - get_typed_class(virt, "MemResourceAllocationSettingData"), - get_typed_class(virt, "ProcResourceAllocationSettingData"), - get_typed_class(virt, "NetResourceAllocationSettingData") + class_list = [ get_typed_class(virt, rasd.dasd_cn), + get_typed_class(virt, rasd.masd_cn), + get_typed_class(virt, rasd.pasd_cn), + get_typed_class(virt, rasd.nasd_cn) ] status = PASS procrasd, netrasd, diskrasd, memrasd = init_list(virt) @@ -175,11 +172,12 @@ def main(): # For each loop # 1) Enumerate one RASD type # 2) Get the RASD info related to the domain "ONLY". - # 3) Verifies the RASD values with those supplied during defining the domain. + # 3) Verifies the RASD values with those supplied during + # defining the domain. for classname in sorted(class_list): # Enumerate each RASD types - status, rasd_values = get_rasd_values(classname) + status, rasd_values = get_rasd_values(classname, virt, server) if status != PASS or len(rasd_values) ==0 : break diff -r 22ed2c7c77e8 -r 5ed6cd841f7b suites/libvirt-cim/lib/XenKvmLib/rasd.py --- a/suites/libvirt-cim/lib/XenKvmLib/rasd.py Fri Apr 25 03:20:54 2008 -0700 +++ b/suites/libvirt-cim/lib/XenKvmLib/rasd.py Mon Apr 28 17:00:36 2008 +0800 @@ -24,6 +24,11 @@ from CimTest import Globals from CimTest import Globals from CimTest.Globals import log_param, logger from CimTest.ReturnCodes import FAIL, PASS + +pasd_cn = 'ProcResourceAllocationSettingData' +nasd_cn = 'NetResourceAllocationSettingData' +dasd_cn = 'DiskResourceAllocationSettingData' +masd_cn = 'MemResourceAllocationSettingData' def CCN_err(assoc_info, list): Globals.logger.error("%s Mismatch", 'CreationClassName')