<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>