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