Sha256: 82a2aff95a9f79780b1768f363c70e4681ed7cb0998ae6b13cbce22c40f4c751
Contents?: true
Size: 1.7 KB
Versions: 7
Compression:
Stored size: 1.7 KB
Contents
module Fog module Compute class Vsphere class Real def list_resource_pools(filters = {}) datacenter_name = filters[:datacenter] cluster_name = filters[:cluster] cluster = get_raw_cluster(cluster_name, datacenter_name) list_raw_resource_pools(cluster).map do |resource_pool| resource_pool_attributes(resource_pool, cluster_name, datacenter_name) end end protected # root ResourcePool + Children if they exists def list_raw_resource_pools(cluster) pools = [] traverse_raw_resource_pools(pools, cluster.resourcePool) pools.uniq end def traverse_raw_resource_pools(pools, rp) if rp if rp.respond_to? :resourcePool traverse_raw_resource_pools(pools, rp.resourcePool) end if rp.respond_to? :each rp.each do |resourcePool| traverse_raw_resource_pools(pools, resourcePool) end else pools << rp end end end def resource_pool_attributes(resource_pool, cluster, datacenter) name = folder_path(resource_pool).gsub(/^.*Resources(\/|)/, '') name = 'Resources' if name.empty? { id: managed_obj_id(resource_pool), name: name, configured_memory_mb: resource_pool.summary.configuredMemoryMB, overall_status: resource_pool.overallStatus, cluster: cluster, datacenter: datacenter } end end class Mock def list_resource_pools(filters = {}); end end end end end
Version data entries
7 entries across 5 versions & 2 rubygems