Menu

#2209 VALUE.REFARRAY is not supported

open
5
2013-02-08
2011-05-26
No

For methods which return array of references, eg. wbemcli cm host/root/yyy::XXX_StoragePool.InstanceId="xxx" GetAvailableExtents
wbemcli (any available version) returns with error:
*
* wbemcli: Parse Exception: Bad attribute list for VALUE:
*
Fragment of output XML:<PARAMVALUE NAME="AvailableExtents" PARAMTYPE="reference">
...
<CIM CIMVERSION="2.0" DTDVERSION="2.0">
<MESSAGE ID="4711" PROTOCOLVERSION="1.0">
<SIMPLERSP>
<METHODRESPONSE NAME="GetAvailableExtents">
<RETURNVALUE PARAMTYPE="uint32">
<VALUE>0</VALUE>
</RETURNVALUE><VALUE.REFARRAY>
<VALUE.REFERENCE>
<LOCALINSTANCEPATH>
<LOCALNAMESPACEPATH>
...
</LOCALNAMESPACEPATH>
</LOCALINSTANCEPATH>
</VALUE.REFERENCE>
<VALUE.REFERENCE>
<LOCALINSTANCEPATH>
<LOCALNAMESPACEPATH>
...
</LOCALNAMESPACEPATH>
/LOCALINSTANCEPATH>
</VALUE.REFERENCE>
</VALUE.REFARRAY>
</PARAMVALUE>
</METHODRESPONSE>
</SIMPLERSP>
</MESSAGE>
</CIM>
Result of this function is array of references to some object instances.

Quick investigation revealed, that only
<VALUE>
<VALUE.ARRAY> and
<VALUE.REFERENCE>
are supported (ValueXml::ValueXml(XmlBuffer &xb))
.REFARRAY is only defined for <PARAMETER>:
<PARAMETER.REFARRAY>

Description of the method is as follows:
<METHOD NAME="GetAvailableExtents" TYPE="uint32">
<QUALIFIER NAME="Values" TYPE="string">
<VALUE.ARRAY>
<VALUE>Completed with No Error</VALUE>
<VALUE>Not Supported</VALUE>
<VALUE>Unknown</VALUE>
<VALUE>Timeout</VALUE>
<VALUE>Failed</VALUE>
<VALUE>Invalid Parameter</VALUE>
<VALUE>In Use</VALUE>
<VALUE>DMTF Reserved</VALUE>
<VALUE>Method Reserved</VALUE>
<VALUE>Vendor Specific</VALUE>
</VALUE.ARRAY>
</QUALIFIER>
<QUALIFIER NAME="ValueMap" TYPE="string">
<VALUE.ARRAY>
<VALUE>0</VALUE>
<VALUE>1</VALUE>
<VALUE>2</VALUE>
<VALUE>3</VALUE>
<VALUE>4</VALUE>
<VALUE>5</VALUE>
<VALUE>6</VALUE>
<VALUE>..</VALUE>
<VALUE>4098..32767</VALUE>
<VALUE>32768..65535</VALUE>
</VALUE.ARRAY>
</QUALIFIER>
<QUALIFIER NAME="Description" TYPE="string">
<VALUE>This method can be used to retrieve a list of available Extents that may be used in the creation or modification of a StoragePool, StorageVolume, or LogicalDisk. The GetAvailableExtents method MUST return the Extents from the set of Component Extents of the Pool on which the method is being invoked. The returned Extents are available at the time the method returns. There is no guarantee that the same Extents will be available later. This method MUST return the Extents that are not being used as supporting capacity for any other Pools, Volumes, or LogicalDisks that have been allocated from this Pool. The Extent returned MUST be a component Extent of the Pool or subdivisions of a component Extent, the subdivisions themselves represented as Extents.</VALUE>
</QUALIFIER>
<PARAMETER.REFERENCE NAME="Goal" REFERENCECLASS="CIM_StorageSetting">
<QUALIFIER NAME="IN" TYPE="boolean">
<VALUE>TRUE</VALUE>
</QUALIFIER>
<QUALIFIER NAME="Description" TYPE="string">
<VALUE>The StorageSetting (Goal) for which supported extents should be retrieved as available. \nIf a NULL is passed for the Goal, the method will return all available extents, regardless of the goal. There exists a possibility of error in creating a Pool, Volume, or LogicalDisk retrieved in this manner.</VALUE>
</QUALIFIER>
</PARAMETER.REFERENCE>
<PARAMETER.REFARRAY NAME="AvailableExtents" REFERENCECLASS="CIM_StorageExtent"><QUALIFIER NAME="OUT" TYPE="boolean">
<VALUE>TRUE</VALUE>
</QUALIFIER>
<QUALIFIER NAME="Description" TYPE="string">
<VALUE>List of references to available StorageExtents, or subclass instances.</VALUE>
</QUALIFIER>
</PARAMETER.REFARRAY>
</METHOD>
</CLASS>
</IRETURNVALUE>
</IMETHODRESPONSE>
</SIMPLERSP>
</MESSAGE>
</CIM>

Discussion


Log in to post a comment.