Totally weird. Following is the XML snippet from the config file
<vw1:device xsi:type="vw1:VirtualBusLogicController">
<vw1:key>1000</vw1:key>
<vw1:deviceInfo xsi:type="vw1:Description">
<vw1:label>SCSI controller 0</vw1:label>
<vw1:summary>BusLogic Parallel</vw1:summary>
</vw1:deviceInfo>
<vw1:controllerKey>100</vw1:controllerKey>
<vw1:unitNumber>3</vw1:unitNumber>
<vw1:busNumber>0</vw1:busNumber>
<vw1:device>2000</vw1:device>
<vw1:hotAddRemove>true</vw1:hotAddRemove>
<vw1:sharedBus>noSharing</vw1:sharedBus>
<vw1:scsiCtlrUnitNumber>7</vw1:scsiCtlrUnitNumber>
</vw1:device>
When I programmatically refer ContollerKey of the above set, the value returned is 3 instead of 100 - which is being currently set as the key for the controller. Once I hardcoded the value it worked properly. So that is actually the issue, the value being misread by the soap API. Have to look in to that.
Once that value is hardcoded - it worked without any other changes. Will update the post when I figure out why the hell is DS being filled up wrongly.
./Siva.