[PATCH] [TEST] Update VSMS 11_define_memrasdunits.py to use cim_define()

# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1233247097 28800 # Node ID 5c3e489b2d299655682443c263a2f74ec84561f2 # Parent fd464f0d24d0f4173cefd9d7ee8d27e6fc48ac55 [TEST] Update VSMS 11_define_memrasdunits.py to use cim_define() Use template RASD when defining guest. Some minor changes so that the test fits with the style conventions of other test cases. Removed some extraneous debug from assoc.py Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com> diff -r fd464f0d24d0 -r 5c3e489b2d29 suites/libvirt-cim/cimtest/VirtualSystemManagementService/11_define_memrasdunits.py --- a/suites/libvirt-cim/cimtest/VirtualSystemManagementService/11_define_memrasdunits.py Thu Jan 29 08:37:46 2009 -0800 +++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/11_define_memrasdunits.py Thu Jan 29 08:38:17 2009 -0800 @@ -21,17 +21,14 @@ # import sys -import pywbem -from VirtLib import live -from XenKvmLib import vsms -from XenKvmLib.test_doms import undefine_test_domain -from XenKvmLib.common_util import create_using_definesystem -from XenKvmLib import rasd -from XenKvmLib.classes import get_typed_class +from pywbem.cim_types import Uint64 +from XenKvmLib.classes import get_typed_class, inst_to_mof from XenKvmLib import enumclass from XenKvmLib.const import do_main from CimTest.Globals import logger from CimTest.ReturnCodes import FAIL, PASS +from XenKvmLib.vxml import get_class +from XenKvmLib.rasd import get_default_rasds sup_types = ['Xen', 'XenFV', 'KVM'] default_dom = "memrasd_test" @@ -45,30 +42,38 @@ ("GigaBytes", 30), ] -def try_define(options, vssd, units, value): - mrasd_class = vsms.get_masd_class(options.virt) - mrasd = mrasd_class(megabytes=value, mallocunits=units, - name=default_dom) +def try_define(options, units, value, cxml): + mrasd_cn = get_typed_class(options.virt, "MemResourceAllocationSettingData") - params = { - "vssd" : vssd, - "rasd" : [mrasd.mof()], - } + rasds = get_default_rasds(options.ip, options.virt) - logger.info("Defining with %s = %i" % (units, value)) - rc = create_using_definesystem(default_dom, - options.ip, - params=params, - virt=options.virt) - - if rc != PASS: - logger.error("DefineSystem (%s) failed" % units) - return False + rasd_list = {} - return True + for rasd in rasds: + if rasd.classname == mrasd_cn: + rasd['VirtualQuantity'] = Uint64(value) + rasd['AllocationUnits'] = units + rasd_list[mrasd_cn] = inst_to_mof(rasd) + else: + rasd_list[rasd.classname] = None + + if rasd_list[mrasd_cn] is None: + logger.error("Unable to get template MemRASD") + return FAIL + + cxml.set_res_settings(rasd_list) + + logger.info("Defining with %s = %i", units, value) + + ret = cxml.cim_define(options.ip) + if not ret: + logger.error("DefineSystem with (%s) units failed" % units) + return FAIL + + return PASS def check_value(options): - mrasd_cn = get_typed_class(options.virt, rasd.masd_cn) + mrasd_cn = get_typed_class(options.virt, "MemResourceAllocationSettingData") rasds = enumclass.EnumInstances(options.ip, mrasd_cn, ret_cim_inst=True) the_rasd = None @@ -80,46 +85,45 @@ if not the_rasd: logger.error("Did not find test RASD on server") - return False + return FAIL if the_rasd["AllocationUnits"] != "KiloBytes": logger.error("MRASD units are not kilobytes?") - return False + return FAIL cim_kb = int(the_rasd["VirtualQuantity"]) if cim_kb != mem_kb: logger.error("CIM reports %i KB instead of %i KB" % (cim_kb, mem_kb)) - return False + return FAIL logger.info("Verified %i KB" % mem_kb) - return True + return PASS @do_main(sup_types) def main(): options = main.options - vssd = vsms.get_vssd_mof(options.virt, default_dom) + cxml = get_class(options.virt)(default_dom) - status = PASS + status = FAIL for units, shift in values: value = mem_bytes >> shift - if not try_define(options, vssd, units, value): - status = FAIL + status = try_define(options, units, value, cxml) + if status != PASS: break - if not check_value(options): - status = FAIL + status = check_value(options) + if status != PASS: break - undefine_test_domain(default_dom, options.ip, virt=options.virt) + cxml.undefine(options.ip) - undefine_test_domain(default_dom, options.ip, virt=options.virt) - + cxml.undefine(options.ip) return status diff -r fd464f0d24d0 -r 5c3e489b2d29 suites/libvirt-cim/lib/XenKvmLib/assoc.py --- a/suites/libvirt-cim/lib/XenKvmLib/assoc.py Thu Jan 29 08:37:46 2009 -0800 +++ b/suites/libvirt-cim/lib/XenKvmLib/assoc.py Thu Jan 29 08:38:17 2009 -0800 @@ -49,7 +49,6 @@ names = [] try: - logger.info("DEBUG instanceref, is %s", instanceref) names = conn.AssociatorNames(instanceref, AssocClass=assoc_cn) except pywbem.CIMError, arg: print arg[1] @@ -79,7 +78,6 @@ names = [] try: - logger.info("DEBUG instanceref, is %s", instanceref) names = conn.Associators(instanceref, AssocClass=assoc_cn) except pywbem.CIMError, arg: print arg[1]

Kaitlin Rupert wrote:
# HG changeset patch # User Kaitlin Rupert <karupert@us.ibm.com> # Date 1233247097 28800 # Node ID 5c3e489b2d299655682443c263a2f74ec84561f2 # Parent fd464f0d24d0f4173cefd9d7ee8d27e6fc48ac55 [TEST] Update VSMS 11_define_memrasdunits.py to use cim_define()
Use template RASD when defining guest. Some minor changes so that the test fits with the style conventions of other test cases.
Removed some extraneous debug from assoc.py
Signed-off-by: Kaitlin Rupert <karupert@us.ibm.com>
diff -r fd464f0d24d0 -r 5c3e489b2d29 suites/libvirt-cim/cimtest/VirtualSystemManagementService/11_define_memrasdunits.py --- a/suites/libvirt-cim/cimtest/VirtualSystemManagementService/11_define_memrasdunits.py Thu Jan 29 08:37:46 2009 -0800 +++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementService/11_define_memrasdunits.py Thu Jan 29 08:38:17 2009 -0800 @@ -21,17 +21,14 @@ #
import sys -import pywbem -from VirtLib import live -from XenKvmLib import vsms -from XenKvmLib.test_doms import undefine_test_domain -from XenKvmLib.common_util import create_using_definesystem -from XenKvmLib import rasd -from XenKvmLib.classes import get_typed_class +from pywbem.cim_types import Uint64 +from XenKvmLib.classes import get_typed_class, inst_to_mof from XenKvmLib import enumclass from XenKvmLib.const import do_main from CimTest.Globals import logger from CimTest.ReturnCodes import FAIL, PASS +from XenKvmLib.vxml import get_class +from XenKvmLib.rasd import get_default_rasds
sup_types = ['Xen', 'XenFV', 'KVM'] default_dom = "memrasd_test" @@ -45,30 +42,38 @@ ("GigaBytes", 30), ]
-def try_define(options, vssd, units, value): - mrasd_class = vsms.get_masd_class(options.virt) - mrasd = mrasd_class(megabytes=value, mallocunits=units, - name=default_dom) +def try_define(options, units, value, cxml): + mrasd_cn = get_typed_class(options.virt, "MemResourceAllocationSettingData")
- params = { - "vssd" : vssd, - "rasd" : [mrasd.mof()], - } + rasds = get_default_rasds(options.ip, options.virt)
- logger.info("Defining with %s = %i" % (units, value)) - rc = create_using_definesystem(default_dom, - options.ip, - params=params, - virt=options.virt) - - if rc != PASS: - logger.error("DefineSystem (%s) failed" % units) - return False + rasd_list = {}
- return True + for rasd in rasds: + if rasd.classname == mrasd_cn: + rasd['VirtualQuantity'] = Uint64(value) + rasd['AllocationUnits'] = units + rasd_list[mrasd_cn] = inst_to_mof(rasd) + else: + rasd_list[rasd.classname] = None + + if rasd_list[mrasd_cn] is None: + logger.error("Unable to get template MemRASD") + return FAIL + + cxml.set_res_settings(rasd_list) + + logger.info("Defining with %s = %i", units, value) + + ret = cxml.cim_define(options.ip) + if not ret: + logger.error("DefineSystem with (%s) units failed" % units) + return FAIL + + return PASS
def check_value(options): - mrasd_cn = get_typed_class(options.virt, rasd.masd_cn) + mrasd_cn = get_typed_class(options.virt, "MemResourceAllocationSettingData") rasds = enumclass.EnumInstances(options.ip, mrasd_cn, ret_cim_inst=True)
the_rasd = None @@ -80,46 +85,45 @@
if not the_rasd: logger.error("Did not find test RASD on server") - return False + return FAIL
if the_rasd["AllocationUnits"] != "KiloBytes": logger.error("MRASD units are not kilobytes?") - return False + return FAIL
cim_kb = int(the_rasd["VirtualQuantity"])
if cim_kb != mem_kb: logger.error("CIM reports %i KB instead of %i KB" % (cim_kb, mem_kb)) - return False + return FAIL
logger.info("Verified %i KB" % mem_kb)
- return True + return PASS
@do_main(sup_types) def main(): options = main.options
- vssd = vsms.get_vssd_mof(options.virt, default_dom) + cxml = get_class(options.virt)(default_dom)
- status = PASS + status = FAIL
for units, shift in values: value = mem_bytes >> shift
- if not try_define(options, vssd, units, value): - status = FAIL + status = try_define(options, units, value, cxml) + if status != PASS: break
- if not check_value(options): - status = FAIL + status = check_value(options) + if status != PASS: break
- undefine_test_domain(default_dom, options.ip, virt=options.virt) + cxml.undefine(options.ip)
- undefine_test_domain(default_dom, options.ip, virt=options.virt) - + cxml.undefine(options.ip)
WE would require to undefine the guest outside the for loop only when status != PASS otherwise it would have already been defined. Can you make that check before calling undefine().
return status
diff -r fd464f0d24d0 -r 5c3e489b2d29 suites/libvirt-cim/lib/XenKvmLib/assoc.py --- a/suites/libvirt-cim/lib/XenKvmLib/assoc.py Thu Jan 29 08:37:46 2009 -0800 +++ b/suites/libvirt-cim/lib/XenKvmLib/assoc.py Thu Jan 29 08:38:17 2009 -0800 @@ -49,7 +49,6 @@ names = []
try: - logger.info("DEBUG instanceref, is %s", instanceref) names = conn.AssociatorNames(instanceref, AssocClass=assoc_cn) except pywbem.CIMError, arg: print arg[1] @@ -79,7 +78,6 @@ names = []
try: - logger.info("DEBUG instanceref, is %s", instanceref) names = conn.Associators(instanceref, AssocClass=assoc_cn) except pywbem.CIMError, arg: print arg[1]
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim
-- Thanks and Regards, Deepti B. Kalakeri IBM Linux Technology Center deeptik@linux.vnet.ibm.com
participants (2)
-
Deepti B Kalakeri
-
Kaitlin Rupert