Class: VSphereCloud::Resources::PersistentDiskIndex

Inherits:
Object
  • Object
show all
Defined in:
lib/cloud/vsphere/resources.rb

Instance Method Summary collapse

Constructor Details

#initialize(clusters, existing_persistent_disks) ⇒ PersistentDiskIndex

Returns a new instance of PersistentDiskIndex.



134
135
136
137
138
139
140
141
142
# File 'lib/cloud/vsphere/resources.rb', line 134

def initialize(clusters, existing_persistent_disks)
  @clusters_to_disks = Hash[*clusters.map do |cluster|
      [cluster, existing_persistent_disks.select { |disk| cluster_includes_datastore?(cluster, disk.datastore) }]
    end.flatten(1)]

  @disks_to_clusters = Hash[*existing_persistent_disks.map do |disk|
      [disk, clusters.select { |cluster| cluster_includes_datastore?(cluster, disk.datastore) }]
    end.flatten(1)]
end

Instance Method Details

#cluster_includes_datastore?(cluster, datastore) ⇒ Boolean

Returns:

  • (Boolean)


144
145
146
# File 'lib/cloud/vsphere/resources.rb', line 144

def cluster_includes_datastore?(cluster, datastore)
  cluster.persistent(datastore.name) != nil
end

#clusters_connected_to_disk(disk) ⇒ Object



152
153
154
# File 'lib/cloud/vsphere/resources.rb', line 152

def clusters_connected_to_disk(disk)
  @disks_to_clusters[disk]
end

#disks_connected_to_cluster(cluster) ⇒ Object



148
149
150
# File 'lib/cloud/vsphere/resources.rb', line 148

def disks_connected_to_cluster(cluster)
  @clusters_to_disks[cluster]
end