class Chef::Knife::VsphereVmList

Lists all known virtual machines in the configured datacenter

Public Instance Methods

print_folder(folder) click to toggle source
print_vm(vm) click to toggle source
run() click to toggle source
# File lib/chef/knife/vsphere_vm_list.rb, line 68
def run
  vim_connection
  base_folder = find_folder(get_config(:folder))
  only_folders = get_config(:onlyfolders)
  recurse = only_folders || get_config(:recursive)
  is_top = true
  traverse_folders(base_folder, is_top, recurse, only_folders)
end
traverse_folders(folder, is_top = false, recurse = false, only_folders = false) click to toggle source
# File lib/chef/knife/vsphere_vm_list.rb, line 28
def traverse_folders(folder, is_top = false, recurse = false, only_folders = false)
  if only_folders
    print_folder(folder)
  else
    vms = find_all_in_folder(folder, RbVmomi::VIM::VirtualMachine).select { |v| v.config && !v.config.template }
    if vms.any?
      print_folder(folder)
      vms.each { |v| print_vm(v) }
    elsif is_top
      puts "#{ui.color("No VMs", :cyan)}"
    end
  end

  return unless recurse

  folders = find_all_in_folder(folder, RbVmomi::VIM::Folder)
  folders.each do |child|
    traverse_folders(child, false, recurse, only_folders)
  end
end