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.