Class: Chef::Knife::VsphereVmList

Inherits:
BaseVsphereCommand show all
Defined in:
lib/chef/knife/vsphere_vm_list.rb

Overview

Lists all known virtual machines in the configured datacenter

Instance Method Summary collapse

Methods inherited from BaseVsphereCommand

#fatal_exit, #find_all_in_folder, #find_datastore, #find_folder, #find_in_folder, #find_network, #find_pool, get_common_options, #get_config, #get_vim_connection

Instance Method Details



40
41
42
43
44
45
# File 'lib/chef/knife/vsphere_vm_list.rb', line 40

def print_subfolders(folder)
	folders = find_all_in_folder(folder, RbVmomi::VIM::Folder)
   folders.each do |subfolder|
     puts "#{ui.color("Folder Name", :cyan)}: #{subfolder.name}"
   end
end


33
34
35
36
37
38
# File 'lib/chef/knife/vsphere_vm_list.rb', line 33

def print_vms_in_folder(folder)
	vms = find_all_in_folder(folder, RbVmomi::VIM::VirtualMachine)
	vms.each do |vm|
		puts "#{ui.color("VM Name:", :cyan)} #{vm.name}\t#{ui.color("IP:", :magenta)} #{vm.guest.ipAddress}\t#{ui.color("RAM:", :magenta)} #{vm.summary.config.memorySizeMB}"
	end
end

#runObject



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/chef/knife/vsphere_vm_list.rb', line 47

def run
	$stdout.sync = true
	vim = get_vim_connection
	baseFolder = find_folder(get_config(:folder));
	if get_config(:recursive)
		traverse_folders(baseFolder)
	else
		print_subfolders(baseFolder)
		print_vms_in_folder(baseFolder)
	end
end

#traverse_folders(folder) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/chef/knife/vsphere_vm_list.rb', line 24

def traverse_folders(folder)
	puts "#{ui.color("Folder", :cyan)}: "+(folder.path[3..-1].map{|x| x[1]}.*'/')
	print_vms_in_folder(folder) unless get_config(:only_folders)
	folders = find_all_in_folder(folder, RbVmomi::VIM::Folder)
	folders.each do |child|
		traverse_folders(child)
	end
end