+1 from me.

Best,
Regards

Daisy (Ô˹úÁ«)
VSM Team, China Systems & Technology Labs (CSTL)
E-mail: yunguol@cn.ibm.com
TEL: (86)-21-60922144
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203


libvirt-cim-bounces@redhat.com wrote on 2008-07-16 00:10:47:

> # HG changeset patch
> # User Kaitlin Rupert <karupert@us.ibm.com>
> # Date 1215806699 25200
> # Node ID 7e91a4012131a1200f9d25711061a61f009bb4bc
> # Parent  30509a2ca9f2c68bf925f0d5fa2a3a65c602073f
> [TEST] #2 Fix potiential false positive in ESD 01.
>
> Test needs to verify the number of VSSD and RASD elemnts returned
> were the values expected.
>
> Instead of calling EnumerateInstances() for the VSSD and RASD
> instances, this test should call getInstance() to get the expected
> instances.  Most of this test was written to support that.
>
> Test now also supports XenFV.
>
> Updates 1 to 2:
>   -Uncomment cxml.undefine() on line 147.
>
> Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com>
>
> diff -r 30509a2ca9f2 -r 7e91a4012131 suites/libvirt-
> cim/cimtest/ElementSettingData/01_forward.py
> --- a/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py  
> Fri Jul 11 13:04:59 2008 -0700
> +++ b/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py  
> Fri Jul 11 13:04:59 2008 -0700
> @@ -49,82 +49,114 @@
>  
>  import sys
>  from VirtLib import utils
> -from XenKvmLib import enumclass
> -from XenKvmLib import assoc
> -from XenKvmLib.classes import get_class_basename
> -from CimTest import Globals
> -from CimTest.Globals import do_main
> +from XenKvmLib.enumclass import getInstance
> +from XenKvmLib.assoc import Associators, compare_all_prop
> +from XenKvmLib.classes import get_typed_class
> +from CimTest.Globals import do_main, logger, CIM_ERROR_ASSOCIATORS
> +from CimTest.ReturnCodes import PASS, FAIL
> +from XenKvmLib.vxml import get_class
> +from XenKvmLib import const
>  
> -sup_types = ['Xen', 'KVM', 'LXC']
> -esd_cn = 'ElementSettingData'
> -vssd_cn = 'VirtualSystemSettingData'
> -vssdc_cn = 'VirtualSystemSettingDataComponent'
> -rasd_cn = 'ResourceAllocationSettingData'
> +sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
>  
> -def test_assoc(host, class_name, id, virt):
> +test_dom = "esd_dom"
> +vmac = "00:11:22:33:44:aa"
> +
> +def get_inst(ip, virt, cn, key):
> +    inst = None
> +
>      try:
> -        ret_inst = assoc.AssociatorNames(host,esd_cn, class_name, virt,
> -                                         InstanceID = id)
> +        key_list = {"InstanceID" : key }
> +
> +        inst = getInstance(ip, cn, key_list, virt)
> +
> +    except Exception, details:
> +        logger.error("Exception %s" % details)
> +        return None
> +
> +    if inst is None:
> +        logger.error("Expected at least one %s instance" % cn)
> +        return None
> +
> +    return inst
> +
> +
> +def test_assoc(host, acn, cn, virt, inst):
> +    id = inst.InstanceID
> +
> +    try:
> +        ret_inst = Associators(host, acn, cn, virt, InstanceID=id)
> +
>      except Exception:
> -        Globals.logger.error(Globals.CIM_ERROR_ASSOCIATORS, esd_cn)
> -        return 1
> +        logger.error(CIM_ERROR_ASSOCIATORS, acn)
> +        return FAIL
>  
>      if len(ret_inst) != 1:
> -        Globals.logger.error("%s returned %i %s instances", esd_cn,
> -                             len(ret_inst), class_name)
> -        return 1
> +        logger.error("%s returned %i %s instances" % (an, len(ret_inst), cn))
> +        return FAIL
>  
> -    ret_id = ret_inst[0].keybindings["InstanceID"]
> +    ret_id = ret_inst[0]['InstanceID']
>      if ret_id != id:
> -        Globals.logger.error("%s returned %s instance with wrong id %s",
> -                             esd_cn, class_name, ret_id)
> -        return 1
> +        logger.error("%s returned %s inst with wrong id %s" % (acn,
> cn, ret_id))
> +        return FAIL
>  
> -    return 0;
> +    status = compare_all_prop(ret_inst[0], inst)
> +
> +    return status
>  
>  @do_main(sup_types)
>  def main():
>      options = main.options
>  
> -    try:
> -        key_list = ["InstanceID"]
> -        vssd_lst = enumclass.enumerate(options.ip, vssd_cn, key_list,
> -                                       options.virt)
> +    esd_cn = 'ElementSettingData'
>  
> -    except Exception, details:
> -        Globals.logger.error("Exception %s", details)
> -        return 1
> +    if options.virt == 'XenFV':
> +        virt_type = 'Xen'
> +    else:
> +        virt_type = options.virt
>  
> -    for vssd in vssd_lst:
> +    keys = { 'VirtualSystemSettingData' : "%s:%s" % (virt_type, test_dom),
> +             'MemResourceAllocationSettingData' : "%s/mem" % test_dom,
> +           }
> +              
>  
> -        rc = test_assoc(options.ip, vssd_cn, vssd.InstanceID, options.virt)
> -        if rc != 0:
> -            Globals.logger.error("Unable to get associated %s from %s",
> -                                 vssd_cn, esd_cn)
> -            return 1
> +    if options.virt == "Xen":
> +        vdisk = "xvda"
> +    else:
> +        vdisk = "hda"
> +
> +    virt_class = get_class(options.virt)
> +    if options.virt == 'LXC':
> +        cxml = virt_class(test_dom)
> +    else:
> +        cxml = virt_class(test_dom, mac = vmac, disk = vdisk)
> +        keys['ProcResourceAllocationSettingData'] = "%s/proc" % test_dom
> +        keys['DiskResourceAllocationSettingData'] = "%s/%s" %
> (test_dom, vdisk)
> +        keys['NetResourceAllocationSettingData'] = "%s/%s" % (test_dom, vmac)
> +              
> +    ret = cxml.define(options.ip)
> +    if not ret:
> +        logger.error("Failed to define the dom: %s", test_dom)
> +        return FAIL
> +
> +    inst_list = {}
> +
> +    for cn, k in keys.iteritems():
> +        inst_list[cn] = get_inst(options.ip, options.virt, cn, k)
> +        if inst_list[cn] is None:
> +            cxml.undefine(options.ip)
> +            return FAIL
> +
> +    status = FAIL
> +    for cn, inst in inst_list.iteritems():
> +        status = test_assoc(options.ip, esd_cn, cn, options.virt, inst)
> +        if status != PASS:
> +            logger.error("Unable to get %s insts from %s" % (cn, esd_cn))
> +            break
>          
> -        try:
> -            rasd_list = assoc.Associators(options.ip, vssdc_cn, vssd_cn,
> -                                          options.virt,
> -                                          InstanceID = vssd.InstanceID)
> -        except Exception:
> -            Globals.logger.error(Globals.CIM_ERROR_ASSOCIATORS, vssdc_cn)
> -            return 1
> -
> -        if len(rasd_list) == 0:
> -            Globals.logger.error("%s returned %i %s instances", esd_cn,
> -                                 len(rasd_list), vssd_cn)
> -            return 1
> -
> -        for rasd in rasd_list:
> -            rc = test_assoc(options.ip, get_class_basename(rasd.classname),
> -                            rasd["InstanceID"], options.virt)
> -            if rc != 0:
> -                Globals.logger.error("Unable to get associated %s from %s",
> -                                     rasd_cn, esd_cn)
> -                return 1
> +    cxml.undefine(options.ip)
>          
> -    return 0
> +    return status
>                      
>  if __name__ == "__main__":
>      sys.exit(main())
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim@redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim