Skip to content

Instantly share code, notes, and snippets.

@agrare
Last active June 8, 2021 14:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save agrare/731603737fe62decdf3d55a79a4a1bd6 to your computer and use it in GitHub Desktop.
Save agrare/731603737fe62decdf3d55a79a4a1bd6 to your computer and use it in GitHub Desktop.
require "rbvmomi"
vim = RbVmomi::VIM.connect(
host: "127.0.0.1",
port: "8989",
insecure: true,
username: "root",
password: "vmware"
)
spec = {
objectSet: [
{
obj: vim.serviceContent.rootFolder,
selectSet: [
RbVmomi::VIM::TraversalSpec(name: "tsFolder", path: "childEntity", selectSet: [{name: "tsFolder"}, {name: "tsDcToVmFolder"}]),
RbVmomi::VIM::TraversalSpec(name: "tsDcToVmFolder", path: "vmFolder", selectSet: [{name: "tsFolder"}])
]
}
],
propSet: [{type: :VirtualMachine, all: false, pathSet: ["name"]}]
}
property_filter = vim.propertyCollector.CreateFilter(spec: spec, partialUpdates: true)
truncated = true
version = nil
while truncated
update_set = vim.propertyCollector.WaitForUpdatesEx(version: version, options: {maxObjectUpdates: 100})
break if update_set.nil?
version = update_set.version
truncated = !!update_set.truncated
filter_update = update_set.filterSet.first
puts "Received #{filter_update.objectSet.count} updates"
end
property_filter.DestroyPropertyFilter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment