Sha256: 5c20337fec3154cff768bc3658c80f92bb38005dbe1418dcadcf8f4bc09ae59a
Contents?: true
Size: 1.27 KB
Versions: 23
Compression:
Stored size: 1.27 KB
Contents
module Fog module Vsphere class Compute class Real def list_templates(options = {}) options[:folder] ||= options['folder'] if options[:folder] list_all_templates_in_folder(options[:folder], options[:datacenter]) else list_all_templates(options) end end private def list_all_templates_in_folder(path, datacenter_name) folder = get_raw_vmfolder(path, datacenter_name) vms = folder.children.grep(RbVmomi::VIM::VirtualMachine) # remove all virtual machines that are not template vms.delete_if { |v| v.config.nil? || !v.config.template } vms.map(&method(:convert_vm_mob_ref_to_attr_hash)) end def list_all_templates(options = {}) datacenters = find_datacenters(options[:datacenter]) vms = datacenters.map do |dc| list_container_view(dc, 'VirtualMachine', :vmFolder) end.flatten # remove all virtual machines that are not templates vms.delete_if { |v| v.config.nil? || !v.config.template } vms.map(&method(:convert_vm_mob_ref_to_attr_hash)) end end class Mock def list_templates(filters = {}); end end end end end
Version data entries
23 entries across 23 versions & 1 rubygems