class Chef::Knife::VspherePoolList

Lists all known pools in the configured datacenter

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/vsphere_pool_list.rb, line 32
def run
  vim_connection
  base_folder = find_pool_folder(get_config(:folder))
  traverse_folders(base_folder)
end
traverse_folders(folder) click to toggle source
# File lib/chef/knife/vsphere_pool_list.rb, line 18
def traverse_folders(folder)
  return if folder.is_a? RbVmomi::VIM::VirtualApp

  if folder.is_a? RbVmomi::VIM::ResourcePool
    pools = folder.path[3..-1].reject { |p| p.last == "Resources" }
    puts "#{ui.color("Pool", :cyan)}: " + pools.map(&:last).join("/")
  end

  folders = find_all_in_folder(folder, RbVmomi::VIM::ManagedObject) || []
  folders.each do |child|
    traverse_folders(child)
  end
end