1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
class RbVmomi::VIM::PropertyCollector
def collectMultiple objs, *pathSet
return {} if objs.empty?
klasses = objs.map{|x| x.class}.uniq
klass = if klasses.length > 1
# common superclass
klasses.map(&:ancestors).inject(&:&)[0]
else
klasses.first
end
spec = {
:objectSet => objs.map{|x| { :obj => x }},
:propSet => [{
:pathSet => pathSet,
:type => klass.wsdl_name
}]
}
res = RetrieveProperties(:specSet => [spec])
Hash[res.map do |x|
[x.obj, x.to_hash]
end]
end
end
|