
+SUPPORTED_TYPES = ['Xen', 'KVM', 'LXC'] +default_dom = 'test_domain' +libvirt_em_type_changeset = 737 + +@do_main(SUPPORTED_TYPES) +def main(): + options = main.options + curr_cim_rev, changeset = get_provider_version(options.virt, options.ip) + if curr_cim_rev >= libvirt_em_type_changeset:
Instead, you can do: if curr_cim_rev < libvirt_em_type_changeset: return SKIP This way, you don't have to indent the whole body of the test. Also, right now, the test returns a PASS if the rev is less than 737. It should return a SKIP since the test body isn't executed.
+ status = create_using_definesystem(default_dom, options.ip, emu_type=0, + virt=options.virt)
Instead of using create_using_definesystem(), use cim_define() - create_using_definesystem() really should be removed at some point as cim_define() is a better interface.
+ + if status != PASS: + logger.error("Failed to call DefineSystem()") + return FAIL + + drasd= get_typed_class(options.virt, 'DiskResourceAllocationSettingData') + + try: + drasd_list = enumclass.EnumInstances(options.ip, drasd, ret_cim_inst=True) + if len(drasd_list) < 1: + logger.error("%s returned %i instances, excepted at least 1.", + drasd, len(drasd_list))
If you do an enum here, you can't be sure the first RASD in the list is the RASD that corresponds to the guest (because there might be more than one guest defined on the system). You'll need to loop through the RASD list and find the corresponding RASD. You can use the parse_instance_id() to extract the guest name for the RASD InstanceID.. If you don't find the corresponding RASD, return an error
+ return FAIL + except Exception, detail: + logger.error(CIM_ERROR_ENUMERATE, drasd) + logger.error("Exception: %s", detail) + return FAIL +
You could use exp_emu_type = 0
+ if drasd_list[0]['EmulatedType'] != 0: + logger.error("%s Mismatch", 'EmulatedType')
Instead, you can format this as "EmulatedType Mismatch" since its a static string. However, the following would be more descriptive: logger.error("EmulatedType Mismatch: got %d, expected %d",drasd_list[0]['EmulatedType'], exp_emu_type)
+ return FAIL + + + undefine_test_domain(default_dom, options.ip, + virt=options.virt) + + return status +
You can test both EmulationType = 0 and EmulationType = 1 in the same test. Have the main body of the test be a loop, something like the following: emu_types = [0, 1] for exp_emu_type in emu_types: #Define guest with exp_emu_type set #Enum DiskRASDs and find the instance that corresponds to the guest #Verify the EmulationType equals the exp_emu_type #Undefine the guest -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com