DS> I'm fine with either of the following three solutions:
DS> 1. Leaving it the way I have it, bending the spec intelligently
DS> 2. Modifying libcmpiutil to have a compile-time flag for relaxed key
DS> checking (for testing, debug, etc)
DS> 3. Removing the feature altogether and making all keys checked all
DS> the time
DS> Thoughts?
So, after some experimentation, I have determined that neither Pegasus
nor SFCB set the key properties in an ObjectPath if they are not set
by the client. The following works on both:
% wbemcli gi
'http://root:password@localhost/root/ibmsd:Xen_VirtualSystemManagementService.Name="Management
Service"'
This means that Pegasus does not require all keys (as specified in the
schema for a given class) to be set.
If I loop through the keys in the GetInstance handler case of above,
only "Name" is set. I don't get the other three keys of CIM_Service
set.
If this level of checking is required for strict adherence, I really
think the CIMOMs should be checking that the keys are specified and we
should be making sure that keys match properties.
So, my suggestion would be to either leave it the way it is, or remove
the properties paramter and just check that whatever keys were
specified match the associated properties.
Anyone else have an opinion, based on this updated information? :)
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms(a)us.ibm.com