[Libvirt-cim] [PATCH] [TEST]#3 Add new test to verify enum of DiskRASD to have EmulatedType=0 for Disk and EmulatedType=1 for CDROM
Deepti B Kalakeri
deeptik at linux.vnet.ibm.com
Wed Dec 24 06:15:53 UTC 2008
Kaitlin Rupert wrote:
>>> + try:
>>> + drasd_list = enumclass.EnumInstances(options.ip, drasd,
>>> ret_cim_inst=True)
>>> + if len(drasd_list) < 1:
>> you can check for len(drasd_list) == 1 instead as we should get only
>> one record.
>
> I disagree. If there are other guests defined on the system,
> EnumInstances() of DiskRASD may return more than one instance.
Sorry, my mistake when I was reviewing this I had GetInstance in mind.
Correct, we will get more than one DiskRASD when the machine has more
than one guest defined.
>
>>> + logger.error("%s returned %i instances, excepted at least 1.",
>>> + drasd, len(drasd_list))
>>> + return FAIL
>> The return statement leaves the guest defined on the machine.
>> Call cxml.undefine() before returning.
>>> + except Exception, detail:
>>> + logger.error(CIM_ERROR_ENUMERATE, drasd)
>>> + logger.error("Exception: %s", detail)
>>> + return FAIL
>>> +
>>> + for rasd in drasd_list:
>> Do we really require the for loop, since we are sure that we will get
>> only one DiskRASD, why not compare the rasd[0]['EmulatedType'] ==
>> exp_emu_type ??
>
> Yes, the loop here is required. If multiple DiskRASDs are returned, we
> need to filter the list to find the DiskRASD that corresponds with our
> guest.
>
Yes the loop is required for handling multiple DiskRASD's .
>>> + guest, dev, status = parse_instance_id(rasd['InstanceID'])
>>> + if status != PASS:
>>> + logger.error("Unable to parse InstanceID: %s" % rasd['InstanceID'])
>>> + return FAIL
>>> + if guest == default_dom:
>>> + if rasd['EmulatedType'] == exp_emu_type:
>>> + status = PASS
>>> + break + else:
>>> + logger.error("EmulatedType Mismatch: got %d, expected %d",\
>>> + rasd['EmulatedType'], exp_emu_type)
>>> + return FAIL
>>> + elif rasd == drasd_list[len(drasd_list)-1]:
>>> + logger.error("The defined guest can not be found")
>>> + return FAIL
>> I did not get how the above check rasd ==
>> drasd_list[len(drasd_list)-1] is useful in the tc ?
>> Once the verification of the guest for a particular emu_type is
>> successful we need to call cxml.undefine() before verifying for the
>> next emu_type.
>
> This is bit of code is attempting to make sure that a DiskRASD for the
> guest was actually returned. I think this can be done in an easier
> way.. See my review for info on that.
>
More information about the Libvirt-cim
mailing list