Skip to content

Commit 797ef39

Browse files
author
ddraganov
committed
[Emulate legacy behavior] The return type of array of instances of ManagedObject should be ManagedObject[]
1 parent 87d4cb3 commit 797ef39

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

pyVmomi/StubAdapterAccessorImpl.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,19 @@ def InvokeAccessor(self, mo, info):
3333
if replacement:
3434
info.type = GetVmodlType(replacement)
3535

36+
# When the type is a list of instances of ManagedObject
37+
# the legacy behavior was to return the base class
38+
# e.g. The returned object type was ManagedObject[] for
39+
# vim.Datastore[] or vim.ManagedEntity[]
40+
if info.type.__name__.endswith("[]"):
41+
elementTypeName = info.type.__name__[:-2]
42+
try:
43+
elementType = GetVmodlType(elementTypeName)
44+
if issubclass(elementType, ManagedObject):
45+
info.type = GetVmodlType('vmodl.ManagedObject[]')
46+
except KeyError:
47+
pass
48+
3649
info = Object(name=info.name,
3750
type=ManagedObject,
3851
wsdlName="Fetch",

0 commit comments

Comments
 (0)