Since the Perl bindings to the XML API is mapped in the OntapClusterAPI.pm library file, this is one correction you can make yourself.
In OntapClusterAPI.pm, each entity - APIs, Types, etc. - is described as a hash. The "service-processor-info" type is defined on line 67693 of the SDK 5.4 version. In the "fields" key, I added an appropriate entry to define "ipmi-version" as follows:
'service-processor-info' => {
'category' => 'service-processor',
'fields' => {
'device-revision' => {
'type' => 'string',
'flags' => 4,
'scope' => [],
},
'firmware-version' => {
'type' => 'string',
'flags' => 4,
'scope' => [],
},
## more fields here - skipped for brevity
},
},
Add an entry in the 'fields' key as:
'ipmi-version' => {
'type' => 'string',
'flags' => 4,
'scope' => [],
},
And now the API call will work because the Perl binding will understand everything coming back from the ZAPI call...
C:\work\test>ipmi.pl
$VAR1 = {
'attributes' => {
'service-processor-info' => {
'firmware-version' => '1.4.1P3',
'type' => 'sp',
'ip-address' => {
'ip-address' => [
'XXX.XXX.XXX.XXX'
]
},
'part-num' => 'Not Applicable',
'device-revision' => 'Not Applicable',
'is-ip-configured' => 'true',
'is-autoupdate-enabled' => 'true',
'ipmi-version' => '2.0',
'status' => 'online',
'node' => 'xxxxxxxxx',
'mac-address' => '00:11:22:33:44:55',
'serial-num' => 'Not Applicable'
}
}
};
Yes, you may notice, I eschew the PowerShell toolkit in favor of Perl even though I typically use a Windows scripting box. The Perl API bindings are way more expressive and convenient than is the PowerShell toolkit, espeically when accessing Advanced or Diagnositic level ZAPIs.
Hope this helps you!
Bob