[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-cim] CMPI support of arrays in OUT params



It appears CMPI (1.3 or 2.0) does not support extrinsic method OUT params that 
are arrays.  For the VirtualSystemManagementService provider, arrays of 
references are problematic.  AddResourceSettings() and ModifyResourceSettings() 
both have OUT params that are reference arrays.  OpenWBEM does not support this 
- segfaults when calling something like:

CMAddArg(argsout, "OutSettings", (CMPIValue*)&array, CMPI_refA);

I have not tried Pegasus but would expect the same -- well, hopefully it fails 
more gracefully :-).

I do not plan to support AddResourceSettings, ModifyResourceSettings and 
RemoveResourceSettings in CIM_VirtualSystemManagementService and instead 
support AddResourceSetting, ModifyResourceSetting and RemoveResourceSetting 
(notice the singular setting) in our derived management service class.  A 
single reference will be returned in these versions, side-stepping the above 
issue.

Frankly, the plural versions suck anyway :-).  I came to this conclusion while 
implementing AddResourceSettings. Implementation is difficult, particularly 
handling errors.  Imagine successfully adding 2 resources but failing on the 
3rd.  Do you fail the whole thing and attempt to unwind (and perhaps fail doing 
that!)? Or do you proceed forward and indicate half failure?  I don't like it 
and considered the 'one-at-a-time' approach before hitting the 'output array' 
issue.

I will proceed with this approach unless (strongly) convinced otherwise.

Jim




_______________________________________________
Xen-cim mailing list
Xen-cim@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-cim


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.