class Chef::Knife::VsphereClusterList
Lists all known clusters in the configured datacenter
Public Instance Methods
find_cluster_folder(folderName)
click to toggle source
# File lib/chef/knife/vsphere_cluster_list.rb, line 33 def find_cluster_folder(folderName) dc = datacenter base_entity = dc.hostFolder entity_array = folderName.split("/") entity_array.each do |entityArrItem| if entityArrItem != "" base_entity = base_entity.childEntity.grep(RbVmomi::VIM::ManagedObject).find { |f| f.name == entityArrItem } || abort("no such folder #{folderName} while looking for #{entityArrItem}") end end base_entity end
run()
click to toggle source
# File lib/chef/knife/vsphere_cluster_list.rb, line 46 def run vim_connection base_folder = find_cluster_folder(get_config(:folder)) ui.output(traverse_folders(base_folder)) end
traverse_folders(folder)
click to toggle source
# File lib/chef/knife/vsphere_cluster_list.rb, line 19 def traverse_folders(folder) return if folder.is_a? RbVmomi::VIM::VirtualApp if folder.is_a? RbVmomi::VIM::ClusterComputeResource clusters = folder.path[3..-1].reject { |p| p.last == "ClusterComputeResource" } return { "Cluster" => clusters.map(&:last).join("/") } end folders = find_all_in_folder(folder, RbVmomi::VIM::ManagedObject) || [] folders.map do |child| traverse_folders(child) end end