[PATCH] [TEST] #4 Update RAFP.01 for LXC support

# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1213929254 -28800 # Node ID a77ba5eb00a6d9c175eee319d8be4c6afe27c615 # Parent 93dbca94a762bb2ba443025db96d43977484c40d [TEST] #4 Update RAFP.01 for LXC support This includes the following changes: -Remove test_disk return -Update get_instance(), return both status and inst -Make sure undefine the guest and call cleanup_restore() if create_diskpool_conf() or create_netpool_conf() fail Signed-off-by: Guolian Yun <yunguol@cn.ibm.com> diff -r 93dbca94a762 -r a77ba5eb00a6 suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py --- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Thu Jun 19 01:42:12 2008 -0700 +++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Fri Jun 20 10:34:14 2008 +0800 @@ -26,68 +26,123 @@ from VirtLib import utils from XenKvmLib import assoc from XenKvmLib import enumclass +from XenKvmLib.test_doms import destroy_and_undefine_all +from XenKvmLib.vxml import get_class from XenKvmLib.classes import get_typed_class from CimTest import Globals from CimTest.Globals import logger, do_main +from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \ +create_netpool_conf from CimTest.ReturnCodes import PASS, FAIL, XFAIL -sup_types = ['Xen', 'XenFV', 'KVM'] +sup_types = ['Xen', 'XenFV', 'KVM', 'LXC'] +test_dom = "RAFP_dom" +test_vcpus = 1 +test_mem = 128 +test_mac = "00:11:22:33:44:aa" + +def setup_env(server, virt): + destroy_and_undefine_all(server) + vsxml = None + if virt == "Xen": + test_disk = "xvda" + if virt == "XenFV" or virt == "KVM": + test_disk = "hda" + + virtxml = get_class(virt) + if virt == 'LXC': + vsxml = virtxml(test_dom) + else: + vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus, + mac = test_mac, disk = test_disk) + try: + ret = vsxml.define(server) + if not ret: + logger.error("Failed to Define the domain: %s", test_dom) + return FAIL, vsxml + + except Exception, details: + logger.error("Exception : %s", details) + return FAIL, vsxml + + return PASS, vsxml + +def get_instance(server, pool, list, virt='Xen'): + try: + inst = enumclass.getInstance(server, + pool, + list, + virt) + except Exception: + logger.error(Globals.CIM_ERROR_GETINSTANCE % pool) + return FAIL, inst + + return PASS, inst + +def verify_rasd(server, assoc_cn, cn, virt, list, rasd): + try: + data = assoc.AssociatorNames(server, + assoc_cn, + cn, + virt, + InstanceID=list) + except Exception: + logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % cn) + return FAIL + + if data[0]['InstanceID'] not in rasd: + logger.error("InstanceID Mismatch") + logger.error("Returned %s error" % data[0]['InstanceID']) + return FAIL + + return PASS + + @do_main(sup_types) def main(): options = main.options status = PASS - try: - key_list = { 'InstanceID' : "MemoryPool/0" } - mempool = enumclass.getInstance(options.ip, - "MemoryPool", - key_list, - options.virt) - except Exception: - logger.error(Globals.CIM_ERROR_GETINSTANCE % "MemoryPool") - return FAIL + status, vsxml = setup_env(options.ip, options.virt) + if status != PASS: + return status + + status, diskid = create_diskpool_conf(options.ip, options.virt) + if status != PASS: + cleanup_restore(options.ip, options.virt) + vsxml.undefine(options.ip) + return status - try: - key_list = { 'InstanceID' : "ProcessorPool/0" } - procpool = enumclass.getInstance(options.ip, - "ProcessorPool", - key_list, - options.virt) - except Exception: - logger.error(Globals.CIM_ERROR_GETINSTANCE % "ProcessorPool") - return FAIL - - try: - memdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool", - "MemoryPool", - options.virt, - InstanceID = mempool.InstanceID) - except Exception: - logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % mempool.InstanceID) - status = FAIL - - for i in range(len(memdata)): - if memdata[i].classname != get_typed_class(options.virt, "MemResourceAllocationSettingData"): - logger.error("ERROR: Association result error") - status = FAIL - - try: - procdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool", - "ProcessorPool", - options.virt, - InstanceID = procpool.InstanceID) - except Exception: - logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % procpool.InstanceID) - status = FAIL - - for j in range(len(procdata)): - if procdata[j].classname != get_typed_class(options.virt, "ProcResourceAllocationSettingData"): - logger.error("ERROR: Association result error") - status = FAIL + status, test_network = create_netpool_conf(options.ip, options.virt) + if status != PASS: + cleanup_restore(options.ip, options.virt) + vsxml.undefine(options.ip) + return status + if options.virt == 'LXC': + pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"} } + rasd = [ "%s/mem" % test_dom ] + else: + pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"}, + "ProcessorPool" : {'InstanceID' : "ProcessorPool/0"}, + "DiskPool" : {'InstanceID' : diskid}, + "NetworkPool" : {'InstanceID' : "NetworkPool/%s" % test_network }} + rasd = [ "%s/mem" % test_dom, + "%s/proc" % test_dom, + "%s/%s" %(test_dom, diskid), + "%s/%s" % (test_dom, test_network) ] + + for k, v in pool.iteritems(): + status, inst = get_instance(options.ip, k, v, options.virt) + + status = verify_rasd(options.ip, "ResourceAllocationFromPool", + k, options.virt, inst.InstanceID, + rasd) + + cleanup_restore(options.ip, options.virt) + vsxml.undefine(options.ip) return status - if __name__ == "__main__": sys.exit(main())

yunguol@cn.ibm.com wrote:
# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1213929254 -28800 # Node ID a77ba5eb00a6d9c175eee319d8be4c6afe27c615 # Parent 93dbca94a762bb2ba443025db96d43977484c40d [TEST] #4 Update RAFP.01 for LXC support
This fails for me on KVM, Xen, XenFV with: ResourceAllocationFromPool - 01_forward.py: FAIL ERROR - InstanceID Mismatch ERROR - Returned RAFP_dom/00:11:22:33:44:aa error ERROR - InstanceID Mismatch ERROR - Returned RAFP_dom/hda error Does it fail for you? -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com

libvirt-cim-bounces@redhat.com wrote on 2008-06-20 23:17:34:
yunguol@cn.ibm.com wrote:
# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1213929254 -28800 # Node ID a77ba5eb00a6d9c175eee319d8be4c6afe27c615 # Parent 93dbca94a762bb2ba443025db96d43977484c40d [TEST] #4 Update RAFP.01 for LXC support
This fails for me on KVM, Xen, XenFV with:
ResourceAllocationFromPool - 01_forward.py: FAIL ERROR - InstanceID Mismatch ERROR - Returned RAFP_dom/00:11:22:33:44:aa error ERROR - InstanceID Mismatch ERROR - Returned RAFP_dom/hda error
Does it fail for you?
It fails because of incorrect InstanceID setting in rasd. I've send a new patch for LXC support, also fix the issue of Xen, KVM and XenFV fails.
-- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim
participants (3)
-
Guo Lian Yun
-
Kaitlin Rupert
-
yunguol@cn.ibm.com