Project

General

Profile

« Previous | Next » 

Revision df599f74

Added by Martin Matuška over 10 years ago

fixes #2093 - list VMs in every VMware folder

(cherry picked from commit aba96a743f566eda5f81c451f52c040267a9cf04)

Conflicts:
app/views/compute_resources_vms/index/_vmware.html.erb

View differences:

app/services/fog_extensions/vsphere/mini_servers.rb
end
def all(filters = { })
dc.vmFolder.childEntity.grep(RbVmomi::VIM::VirtualMachine).map do |server|
MiniServer.new(server)
allvmsbyfolder(dc.vmFolder, nil).map do |entry|
MiniServer.new(entry[:vm], entry[:path], entry[:uuid])
end
end
def allvmsbyfolder(folder, path = nil)
ret = []
unless folder == @dc.vmFolder
path = path.nil? ? folder.name : path + '/' + folder.name
end
folder.childEntity.each do |entity|
if entity.is_a?(RbVmomi::VIM::Folder)
ret.push(*allvmsbyfolder(entity, path))
elsif entity.is_a?(RbVmomi::VIM::VirtualMachine)
config = entity.config
if (!config.template && (uuid = config.instanceUuid))
ret.push({ :vm => entity, :path => path, :uuid => uuid})
end
end
end
ret
end
private
attr_reader :client, :dc
end
end
end
end

Also available in: Unified diff