Sha256: 4deecb8c11d411e7e285bcd3e6954208f43fbbe696aaa415946c2e1ec0750ae2
Contents?: true
Size: 1.52 KB
Versions: 2
Compression:
Stored size: 1.52 KB
Contents
module Fog module Compute class Vsphere class Real def list_storage_pods(filters = {}) datacenter_name = filters[:datacenter] dc = find_raw_datacenter(datacenter_name) storage_pods = property_collector_results(storage_pod_filter_spec(dc)) storage_pods.map do |storage_pod| map_attrs_to_hash(storage_pod, storage_pod_attribute_mapping).merge( datacenter: datacenter_name, id: managed_obj_id(storage_pod.obj) ) end end protected def storage_pod_filter_spec(obj) RbVmomi::VIM.PropertyFilterSpec( objectSet: [ obj: obj.datastoreFolder, skip: true, selectSet: [ folder_traversal_spec ] ], propSet: storage_pod_filter_prop_set ) end def storage_pod_filter_prop_set [ { type: 'StoragePod', pathSet: storage_pod_attribute_mapping.values } ] end def storage_pod_attribute_mapping { name: 'name', freespace: 'summary.freeSpace', capacity: 'summary.capacity' } end end class Mock def list_storage_pods(filters = {}) if filters.key?(:datacenter) data[:storage_pods].select { |h| h[:datacenter] == filters[:datacenter] } else data[:storage_pods] end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fog-vsphere-2.5.0 | lib/fog/vsphere/requests/compute/list_storage_pods.rb |
fog-vsphere-2.4.0 | lib/fog/vsphere/requests/compute/list_storage_pods.rb |