[PATCH] [TEST] #7 Add new test to verify enum of DiskRASD to have EmulatedType=0 for Disk and EmulatedType=1 for CDROM

# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1231210158 28800 # Node ID b592961ccaac67ad3cfd8876beb22beec0c28492 # Parent 64b84ef28b22d17dd22027c632a9dc44d642d2b5 [TEST] #7 Add new test to verify enum of DiskRASD to have EmulatedType=0 for Disk and EmulatedType=1 for CDROM Updates form 6 to 7: Correct exception description Signed-off-by: Guolian Yun <yunguol@cn.ibm.com> diff -r 64b84ef28b22 -r b592961ccaac suites/libvirt-cim/cimtest/RASD/05_disk_rasd_emu_type.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suites/libvirt-cim/cimtest/RASD/05_disk_rasd_emu_type.py Mon Jan 05 18:49:18 2009 -0800 @@ -0,0 +1,88 @@ +#!/usr/bin/python +# +# Copyright 2008 IBM Corp. +# +# Authors: +# Guolian Yun <yunguol@cn.ibm.com> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +import sys +from XenKvmLib.enumclass import EnumInstances +from XenKvmLib.classes import get_typed_class +from XenKvmLib.common_util import parse_instance_id +from XenKvmLib.const import do_main +from XenKvmLib.vxml import get_class +from CimTest.ReturnCodes import PASS, FAIL +from CimTest.Globals import logger +from XenKvmLib.const import get_provider_version + +SUPPORTED_TYPES = ['KVM'] +default_dom = 'test_domain' +libvirt_em_type_changeset = 737 + +@do_main(SUPPORTED_TYPES) +def main(): + status = FAIL + options = main.options + curr_cim_rev, changeset = get_provider_version(options.virt, options.ip) + if curr_cim_rev < libvirt_em_type_changeset: + return SKIP + + emu_types = [0, 1] + try: + for exp_emu_type in emu_types: + cxml = get_class(options.virt)(default_dom, emu_type=exp_emu_type) + ret = cxml.cim_define(options.ip) + if not ret: + logger.error("Failed to call DefineSystem()") + return FAIL + + drasd= get_typed_class(options.virt,'DiskResourceAllocationSettingData') + + drasd_list = EnumInstances(options.ip, drasd, ret_cim_inst=True) + if len(drasd_list) < 1: + raise Exception("%s returned %i instances, expected at least 1" \ + %(drasd, len(drasd_list))) + + found_rasd = None + for rasd in drasd_list: + guest, dev, status = parse_instance_id(rasd['InstanceID']) + if status != PASS: + raise Exception("Unable to parse InstanceID: %s" \ + % rasd['InstanceID']) + if guest == default_dom: + if rasd['EmulatedType'] == exp_emu_type: + found_rasd = rasd + status = PASS + break + else: + raise Exception("EmulatedType Mismatch: got %d," + "expected %d" %(rasd['EmulatedType'], + exp_emu_type)) + + if found_rasd is None: + raise Exception("DiskRASD for defined dom was not found") + except Exception, detail: + logger.error("Exception: %s", detail) + status = FAIL + + cxml.undefine(options.ip) + + return status + +if __name__ == "__main__": + sys.exit(main()) diff -r 64b84ef28b22 -r b592961ccaac suites/libvirt-cim/lib/XenKvmLib/vsms.py --- a/suites/libvirt-cim/lib/XenKvmLib/vsms.py Tue Dec 30 00:58:06 2008 -0800 +++ b/suites/libvirt-cim/lib/XenKvmLib/vsms.py Mon Jan 05 18:49:18 2009 -0800 @@ -126,8 +126,10 @@ # classes to define RASD parameters class CIM_DiskResourceAllocationSettingData(CIMClassMOF): - def __init__(self, dev, source, name): + def __init__(self, dev, source, name, emu_type=None): self.ResourceType = RASD_TYPE_DISK + if emu_type != None: + self.EmulatedType = emu_type if dev != None: self.VirtualDevice = dev self.InstanceID = '%s/%s' % (name, dev) @@ -239,6 +241,7 @@ proc_vcpu=1, mem_mb=512, malloc_units="MegaBytes", + emu_type=None, virt='Xen'): vssd = get_vssd_mof(virt, dom_name) @@ -252,7 +255,7 @@ elif virt == 'LXC': disk_dev = const.LXC_default_mp disk_source = const.LXC_default_source - d = class_dasd(disk_dev, disk_source, dom_name) + d = class_dasd(disk_dev, disk_source, dom_name, emu_type) class_masd = get_masd_class(virt) m = class_masd( diff -r 64b84ef28b22 -r b592961ccaac suites/libvirt-cim/lib/XenKvmLib/vxml.py --- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue Dec 30 00:58:06 2008 -0800 +++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Mon Jan 05 18:49:18 2009 -0800 @@ -466,11 +466,13 @@ class VirtCIM: def __init__(self, virt, dom_name, disk_dev, disk_source, - net_type, net_name, net_mac, vcpus, mem, mem_allocunits): + net_type, net_name, net_mac, vcpus, mem, + mem_allocunits, emu_type): self.virt = virt self.domain_name = dom_name self.vssd = vsms.get_vssd_mof(virt, dom_name) - self.dasd = vsms.get_dasd_class(virt)(disk_dev, disk_source, dom_name) + self.dasd = vsms.get_dasd_class(virt)(disk_dev, disk_source, + dom_name, emu_type) self.nasd = vsms.get_nasd_class(virt)(type=net_type, mac=net_mac, name=dom_name, @@ -687,13 +689,15 @@ disk_file_path=const.KVM_disk_path, disk=const.KVM_default_disk_dev, ntype=const.default_net_type, - net_name=const.default_network_name): + net_name=const.default_network_name, + emu_type=None): if not os.path.exists(disk_file_path): logger.error('Error: Disk image does not exist') sys.exit(1) VirtXML.__init__(self, 'kvm', test_dom, set_uuid(), mem, vcpus) VirtCIM.__init__(self, 'KVM', test_dom, disk, disk_file_path, - ntype, net_name, mac, vcpus, mem, mem_allocunits) + ntype, net_name, mac, vcpus, mem, + mem_allocunits, emu_type) self._os() self._devices(const.KVM_default_emulator, ntype, disk_file_path, disk, mac, net_name)

yunguol@cn.ibm.com wrote:
# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1231210158 28800 # Node ID b592961ccaac67ad3cfd8876beb22beec0c28492 # Parent 64b84ef28b22d17dd22027c632a9dc44d642d2b5 [TEST] #7 Add new test to verify enum of DiskRASD to have EmulatedType=0 for Disk and EmulatedType=1 for CDROM
Updates form 6 to 7: Correct exception description
Signed-off-by: Guolian Yun <yunguol@cn.ibm.com>
diff -r 64b84ef28b22 -r b592961ccaac suites/libvirt-cim/cimtest/RASD/05_disk_rasd_emu_type.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suites/libvirt-cim/cimtest/RASD/05_disk_rasd_emu_type.py Mon Jan 05 18:49:18 2009 -0800 @@ -0,0 +1,88 @@ +#!/usr/bin/python +# +# Copyright 2008 IBM Corp. +# +# Authors: +# Guolian Yun <yunguol@cn.ibm.com> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +import sys +from XenKvmLib.enumclass import EnumInstances +from XenKvmLib.classes import get_typed_class +from XenKvmLib.common_util import parse_instance_id +from XenKvmLib.const import do_main +from XenKvmLib.vxml import get_class +from CimTest.ReturnCodes import PASS, FAIL +from CimTest.Globals import logger +from XenKvmLib.const import get_provider_version + +SUPPORTED_TYPES = ['KVM'] +default_dom = 'test_domain' +libvirt_em_type_changeset = 737 + +@do_main(SUPPORTED_TYPES) +def main(): + status = FAIL + options = main.options + curr_cim_rev, changeset = get_provider_version(options.virt, options.ip) + if curr_cim_rev < libvirt_em_type_changeset: + return SKIP + + emu_types = [0, 1] + try: + for exp_emu_type in emu_types: + cxml = get_class(options.virt)(default_dom, emu_type=exp_emu_type) + ret = cxml.cim_define(options.ip) + if not ret: + logger.error("Failed to call DefineSystem()") + return FAIL + + drasd= get_typed_class(options.virt,'DiskResourceAllocationSettingData') + + drasd_list = EnumInstances(options.ip, drasd, ret_cim_inst=True)
Are you planning to change the EnumInstance to GetInstance() ?? Or is this final changes for the test case ? Thanks and Regards, Deepti.

get_typed_class(options.virt,'DiskResourceAllocationSettingData') + + drasd_list = EnumInstances(options.ip, drasd, ret_cim_inst=True)
Are you planning to change the EnumInstance to GetInstance() ?? Or is this final changes for the test case ?
Hi Daisy, I haven't taken a look at this test yet because I'm not sure if you plan to update it to replace EnumInstance() with GetInstance(). Are you planning on sending another patch? -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com

libvirt-cim-bounces@redhat.com wrote on 2009-01-08 00:48:14:
get_typed_class(options.virt,'DiskResourceAllocationSettingData') + + drasd_list = EnumInstances(options.ip, drasd, ret_cim_inst=True)
Are you planning to change the EnumInstance to GetInstance() ?? Or is this final changes for the test case ?
Hi Daisy,
I haven't taken a look at this test yet because I'm not sure if you plan
to update it to replace EnumInstance() with GetInstance().
Are you planning on sending another patch?
Hi Kaitin & Deepti, I caught a cold and out of office these two days. Sorry for my late replay. If EnumInstance() is OK to us, please apply this patch. Thanks!
-- 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

Guo Lian Yun wrote:
libvirt-cim-bounces@redhat.com wrote on 2009-01-08 00:48:14:
get_typed_class(options.virt,'DiskResourceAllocationSettingData') + + drasd_list = EnumInstances(options.ip, drasd, ret_cim_inst=True)
Are you planning to change the EnumInstance to GetInstance() ?? Or is this final changes for the test case ?
Hi Daisy,
I haven't taken a look at this test yet because I'm not sure if you plan to update it to replace EnumInstance() with GetInstance().
Are you planning on sending another patch?
Hi Kaitin & Deepti,
I caught a cold and out of office these two days. Sorry for my late replay.
No problem. Hope you are feeling better now. I have reviewed the tc and replied to the same.
If EnumInstance() is OK to us, please apply this patch. Thanks!
-- 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
------------------------------------------------------------------------
_______________________________________________ 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

Hi Kaitin & Deepti,
I caught a cold and out of office these two days. Sorry for my late replay. If EnumInstance() is OK to us, please apply this patch. Thanks!
Hope you're feeling better! This patch is in now, can you update it to work with Xen? Thanks! -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com

libvirt-cim-bounces@redhat.com wrote on 2009-01-10 05:19:19:
Hi Kaitin & Deepti,
I caught a cold and out of office these two days. Sorry for my late replay. If EnumInstance() is OK to us, please apply this patch. Thanks!
Hope you're feeling better! This patch is in now, can you update it to work with Xen? Thanks!
Sure, It's in my plan. Thanks!
-- 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

+1 for me, but see the comments inline below: yunguol@cn.ibm.com wrote:
# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1231210158 28800 # Node ID b592961ccaac67ad3cfd8876beb22beec0c28492 # Parent 64b84ef28b22d17dd22027c632a9dc44d642d2b5 [TEST] #7 Add new test to verify enum of DiskRASD to have EmulatedType=0 for Disk and EmulatedType=1 for CDROM
Updates form 6 to 7: Correct exception description
Signed-off-by: Guolian Yun <yunguol@cn.ibm.com>
+ + emu_types = [0, 1] + try: + for exp_emu_type in emu_types: + cxml = get_class(options.virt)(default_dom, emu_type=exp_emu_type)
When you update the test case for Xen and other virt types, can you change the above to the following : virt_xml = get_class(options.virt) cxml = virt_xml(default_dom, emu_type=exp_emu_type) -- Thanks and Regards, Deepti B. Kalakeri IBM Linux Technology Center deeptik@linux.vnet.ibm.com

libvirt-cim-bounces@redhat.com wrote on 2009-01-09 18:31:43:
+1 for me, but see the comments inline below:
yunguol@cn.ibm.com wrote:
# HG changeset patch # User Guolian Yun <yunguol@cn.ibm.com> # Date 1231210158 28800 # Node ID b592961ccaac67ad3cfd8876beb22beec0c28492 # Parent 64b84ef28b22d17dd22027c632a9dc44d642d2b5 [TEST] #7 Add new test to verify enum of DiskRASD to have EmulatedType=0 for Disk and EmulatedType=1 for CDROM
Updates form 6 to 7: Correct exception description
Signed-off-by: Guolian Yun <yunguol@cn.ibm.com>
+ + emu_types = [0, 1] + try: + for exp_emu_type in emu_types: + cxml = get_class(options.virt)(default_dom, emu_type=exp_emu_type)
When you update the test case for Xen and other virt types, can you change the above to the following : virt_xml = get_class(options.virt)
cxml = virt_xml(default_dom, emu_type=exp_emu_type)
Good catch. This sounds good to me. I will update it later. Thanks!
-- Thanks and Regards, Deepti B. Kalakeri IBM Linux Technology Center deeptik@linux.vnet.ibm.com
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim
participants (4)
-
Deepti B Kalakeri
-
Guo Lian Yun
-
Kaitlin Rupert
-
yunguol@cn.ibm.com