[Libvirt-cim] [PATCH 1 of 2] Add property filtering to RASD provider
Kaitlin Rupert
kaitlin at linux.vnet.ibm.com
Mon Feb 25 16:37:17 UTC 2008
>> +
>> + 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.
>
> You can also skip the check if a the properties filter is there, as NULL
> is interpreted as "all properties accepted".
> CMPI 2.0 Spec: "The propertyList argument defines the properties that
> will be accepted by subsequent setProperty() operations. The
> propertyList argument is an array of pointers to character strings,
> terminated by a NULL pointer. A NULL value effectively means that all
> properties will be accepted. A pointer to an empty list means that no
> properties will be accepted."
Ah, good to know. I'll remove this check and rebase the patch on your
recent changes.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
More information about the Libvirt-cim
mailing list