[Libvirt-cim] [PATCH] [TEST] #3 Update VSMS 14_define_sys_disk.py to use cim_define()

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Thu Feb 5 23:19:46 UTC 2009


>>
>> -    params = { 'vssd' : vssd,
>> -               'rasd' : rasd_list -             }
>> +    return rasd_list
>> -    return params +def verify_disk_path(ip, virt, addr, guest_name):
>> +    inst = None
>> +
>> +    try:
>> +        drasd_cn = get_typed_class(virt, 
>> 'DiskResourceAllocationSettingData')
>> +        enum_list = EnumInstances(ip, drasd_cn)
>>   
> GetInstance of the DiskRASD would be much more simpler than EnumInstances.
> Any reason behind using EnumInstances instead .

Using GetInstance() means that you have to know how the InstanceID of 
the reference you're querying is formatted.  The only reason we know how 
the InstanceID is formatted is because we know how the providers work =)

The idea behind CIM is that you don't have to know how the underlying 
implementation works in order to get information from the providers.  So 
a CIM client shouldn't need to know how we format our InstanceIDs in 
order to use our providers.

I'm not sure how often CIM clients build their own references.  In 
reality, they should be using the references the providers return.  They 
shouldn't be building their own (like we do in cimtest's GetInstance() 
call).

So I try to use EnumInstances() to avoid building my own reference. 
This forces the providers to return the references for me.

cimtest's GetInstance() function really should only take a reference as 
a parameter instead of taking keys and doing a call to CIMInstanceName().

But faking a reference can be useful in some situations. =)  I'm 
inclined to leave this as is unless you think it'd be easier to read / 
maintain with GetInstance() in place of EnumInstances().
-- 
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list