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