CIMOM refuses EmbeddedObject with unknown class

Jan Safranek <[email protected]> Wed, 13 Mar 2013 09:22:48 +0100
Newsgroups gmane.network.open-pegasus.general
Message-ID <[email protected]>
I have a CMPI provider for CIM_MethodResult class under Pegasus 2.12.0.
It has EmbeddedInstance('CIM_InstMethodCall') property PostCallIndication.

This CIM_InstMethodCall class has EmbeddedObject property
MethodParameters and description of the property says:

   The parameters of the method, formatted as an EmbeddedObject (with a
   predefined class name of "__MethodParameters".

Now if I set the MethodParameters property with CIM instance of
not-existing "__MethodParameters" class in my provider, Pegasus returns
CMPI_RC_ERR_NOT_FOUND from
src/Pegasus/ProviderManager2/CMPI/CMPI_BrokerEnc.cpp:mbEncNewInstance()

If I try to use "CIM_ManagedElement" as classname of the embedded object
just for testing, Pegasus shows correct property, i.e. these
EmbeddedInstances and EmbeddedObjects work well for registered classes.

Problem is that "__MethodParameters" is not registered class and Pegasus
does not like it. Would it be possible not to check the class name for
EmbeddedObjects returned from providers? DMTF defined some
EmbeddedObject properties with undefined classes, in addition to
CIM_InstMethodCall.MethodParameters also e.g.
CIM_ConcreteJob.JobInParameters.

Jan