Hi All,
 
I am trying to extend “iscsi” support for iSCSI driver, currently am stuck at getting iSCSI target list from the hypervisor. I am using hostSystem object (propertyNameList is set to “config.storageDevice.hostBusAdapter”) to retrieve list of “HostHostBusAdapter” from ESX, but the call fails to perform “CastFromAnyType”  from ObjectContent –> HostHostBusAdapter. The esx_vi_generator.input object definition looks like this:
 
object HostHostBusAdapter
    String                                   key                            o   
    String                                   device                         r   
    Int                                      bus                            r   
    String                                   status                         r   
    String                                   model                          r   
    String                                   driver                         o   
    String                                   pci                            o   
end
 
esx_vi_generaor.py is modified as follows:
 
"HostHostBusAdapter"         : Object.FEATURE__ANY_TYPE |
                               Object.FEATURE__LIST,
 
Using gdb, I see the failure occurs at: esx/esx_vi.c:esxVI_List_CastFromAnyType(..) line 1631:
 
..
if (esxVI_AnyType_Deserialize(childNode, &childAnyType) < 0 ||
    castFromAnyTypeFunc(childAnyType, &item) < 0 ||
    esxVI_List_Append(list, item) < 0) {
    goto cleanup;
}
..
 
In one of my earlier patches (subject: Add routines to interface driver) I patched esx_vi_generator.py to deserialize “string list”; as the patch is still under review I manually applied the branch to this branch but no change (did not expect change as structure does not contain any list object). I am wondering what else is missing to make it work.
 
Any suggestion how to debug/fix this issue is highly appreciated.
 
Thanks!
Ata