+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(a)linux.vnet.ibm.com