
Jay Gagnon wrote:
Dan Smith wrote:
Can you explain why the XML was wrong and why this fixes it?
Sure. I used -d to see what xml was actually going across for the filter. The create xml started off like this: <?xml version="1.0" encoding="utf-8"?> <CIM CIMVERSION="2.0" DTDVERSION="2.0"> <MESSAGE ID="4711" PROTOCOLVERSION="1.0"> <SIMPLEREQ> <IMETHODCALL NAME="CreateInstance"> <LOCALNAMESPACEPATH> <NAMESPACE NAME="root"/> <NAMESPACE NAME="PG_InterOp"/> </LOCALNAMESPACEPATH> <IPARAMVALUE NAME="NewInstance"> <INSTANCE CLASSNAME="CIM_IndicationFilter">
And then the corresponding delete xml started off like this: <?xml version="1.0" encoding="utf-8"?> <CIM CIMVERSION="2.0" DTDVERSION="2.0"> <MESSAGE ID="4711" PROTOCOLVERSION="1.0"> <SIMPLEREQ> <IMETHODCALL NAME="DeleteInstance"> <LOCALNAMESPACEPATH> <NAMESPACE NAME="root"/> <NAMESPACE NAME="PG_InterOp"/> </LOCALNAMESPACEPATH> <IPARAMVALUE NAME="InstanceName"> <INSTANCENAME CLASSNAME="CIM_IndicationFilterCIMXML">
The classnames don't match up, so when we make the delete request the CIMOM can't find the right instance to delete. Both handler and subscription have the classnames properly matched, so they get created and deleted properly. Now the one other thing I noticed is that handler and subscription have the CIMXML suffix on both create and delete, so maybe the more correct solution is to add it to the filter create, not remove it from the filter delete. Do we have anything official that can answer that for us?
The reason is defined within the CIM model: There exists only the one class CIM_IndicationHandlerCIMXML with the CIMXML suffix. CIM_IndicationHandler is the parent of this class and abstract, which means that no instances of this class are allowed. So instances of the Handler are CIM_IndicationHandlerCIMXML. For CIM_IndicationFilter and CIM_IndicationSubscription no class with the CIMXML suffix exists. In this cases the CIMXML suffix is a typo. ls /var/lib/Pegasus/repository/root#PG_InterOp/classes ... -rw-r----- 1 root pegasus 2599 2008-01-10 12:07 CIM_Indication.# -rw-r----- 1 root pegasus 5699 2008-01-10 12:07 CIM_IndicationFilter.CIM_ManagedElement -rw-r----- 1 root pegasus 6679 2008-01-10 12:07 CIM_IndicationHandler.CIM_ListenerDestination -rw-r----- 1 root pegasus 7045 2008-01-10 12:07 CIM_IndicationHandlerCIMXML.CIM_IndicationHandler -rw-r----- 1 root pegasus 11290 2008-01-10 12:07 CIM_IndicationSubscription.# ... -- Regards Heidi Eckhart Software Engineer IBM Linux Technology Center - Open Hypervisor