Class: Bosh::Director::DeploymentPlan::CloudPlanner

Inherits:
Object
  • Object
show all
Defined in:
lib/bosh/director/deployment_plan/planner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cloud_config) ⇒ CloudPlanner

Returns a new instance of CloudPlanner.



201
202
203
204
205
206
207
208
# File 'lib/bosh/director/deployment_plan/planner.rb', line 201

def initialize(cloud_config)
  @cloud_config = cloud_config
  @networks_canonical_name_index = Set.new

  @networks = {}
  @resource_pools = {}
  @disk_pools = {}
end

Instance Attribute Details

#compilationBosh::Director::DeploymentPlan::CompilationConfig

Returns Resource pool and other configuration for compilation workers.

Returns:



199
200
201
# File 'lib/bosh/director/deployment_plan/planner.rb', line 199

def compilation
  @compilation
end

Instance Method Details

#add_disk_pool(disk_pool) ⇒ Object

Adds a disk pool by name



261
262
263
264
265
266
267
# File 'lib/bosh/director/deployment_plan/planner.rb', line 261

def add_disk_pool(disk_pool)
  if @disk_pools[disk_pool.name]
    raise DeploymentDuplicateDiskPoolName,
      "Duplicate disk pool name `#{disk_pool.name}'"
  end
  @disk_pools[disk_pool.name] = disk_pool
end

#add_network(network) ⇒ Object

Adds a network by name



235
236
237
238
239
240
241
242
243
244
# File 'lib/bosh/director/deployment_plan/planner.rb', line 235

def add_network(network)
  if @networks_canonical_name_index.include?(network.canonical_name)
    raise DeploymentCanonicalNetworkNameTaken,
      "Invalid network name `#{network.name}', " +
        'canonical name already taken'
  end

  @networks[network.name] = network
  @networks_canonical_name_index << network.canonical_name
end

#add_resource_pool(resource_pool) ⇒ Object

Adds a resource pool by name

Parameters:



212
213
214
215
216
217
218
# File 'lib/bosh/director/deployment_plan/planner.rb', line 212

def add_resource_pool(resource_pool)
  if @resource_pools[resource_pool.name]
    raise DeploymentDuplicateResourcePoolName,
      "Duplicate resource pool name `#{resource_pool.name}'"
  end
  @resource_pools[resource_pool.name] = resource_pool
end

#disk_pool(name) ⇒ Object



273
274
275
# File 'lib/bosh/director/deployment_plan/planner.rb', line 273

def disk_pool(name)
  @disk_pools[name]
end

#disk_poolsObject



269
270
271
# File 'lib/bosh/director/deployment_plan/planner.rb', line 269

def disk_pools
  @disk_pools.values
end

#network(name) ⇒ Bosh::Director::DeploymentPlan::Network

Returns a named network

Parameters:

  • name (String)

Returns:



255
256
257
# File 'lib/bosh/director/deployment_plan/planner.rb', line 255

def network(name)
  @networks[name]
end

#networksArray<Bosh::Director::DeploymentPlan::Network>

Returns all networks in a deployment plan



248
249
250
# File 'lib/bosh/director/deployment_plan/planner.rb', line 248

def networks
  @networks.values
end

#resource_pool(name) ⇒ Bosh::Director::DeploymentPlan::ResourcePool

Returns a named resource pool spec

Parameters:

  • name (String)

    Resource pool name

Returns:



229
230
231
# File 'lib/bosh/director/deployment_plan/planner.rb', line 229

def resource_pool(name)
  @resource_pools[name]
end

#resource_poolsArray<Bosh::Director::DeploymentPlan::ResourcePool>

Returns all resource pools in a deployment plan



222
223
224
# File 'lib/bosh/director/deployment_plan/planner.rb', line 222

def resource_pools
  @resource_pools.values
end