[Libvirt-cim] [PATCH 1 of 2] Add property filtering to RASD provider

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Tue Feb 26 17:03:55 UTC 2008


Heidi Eckhart wrote:
> Kaitlin Rupert wrote:
>>>> +
>>>> +        if (properties != NULL) {
>>>> +                const char *keys[] = {"InstanceID", NULL};
>>>> +                s = CMSetPropertyFilter(inst, properties, keys);
>>>> +                /* FIXME - in case of an error, should we continue 
>>>> on? */
>>>> +                if (s.rc != CMPI_RC_OK)
>>>> +                        CU_DEBUG("Unable to set property filter: 
>>>> %d", s.rc);
>>>> +        }
>>>>   
>>> That's a very good point to enable the provider interfaces for the 
>>> property filtering :). I think it makes sense to move this code into 
>>> get_typed_instance() of libxkutil, to avoid implementing these lines 
>>> for every provider. What's then only necessary is routing the 
>>> properties list through the interfaces. But you will now think ... 
>>> and how about the keys ? Well, that's an interesting thing. The CMPI 
>>> 2.0 spec tells the following about the keys:
>>> CMPI 2.0 Spec; "The keyList argument shall be ignored by the MB; it 
>>> is here to maintain binary compatibility with previous 
>>> specifications. Providers should explicitly set the key names and 
>>> values via the CMPIInstanceMI.setObjectPath() function."
>>> Translated I think this means, that we can ignore the keys by setting 
>>> it to NULL. Do you agree ?
>>
>> I tried using NULL for the keys based on the same line from the CMPI 
>> spec, but this crashed the provider.  I might be missing something 
>> though.
> I've tested it with Pegasus and sfcb:
> Pegasus returns with FAILED and does not set the propertylist
> sfcb is crashing
> So my interpretation of this description seem to be wrong and the 
> keyList is needed. Thanks for evaluating this.
> 

Thanks for confirming this Heidi.  I was confused by the behavior, and 
thought that maybe I was calling the function incorrectly.  =)

-- 
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list