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.



129
130
131
132
133
134
135
136
137
# File 'lib/cloud/vsphere/resources.rb', line 129

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)


139
140
141
# File 'lib/cloud/vsphere/resources.rb', line 139

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

#clusters_connected_to_disk(disk) ⇒ Object



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

def clusters_connected_to_disk(disk)
  @disks_to_clusters[disk]
end

#disks_connected_to_cluster(cluster) ⇒ Object



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

def disks_connected_to_cluster(cluster)
  @clusters_to_disks[cluster]
end