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

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ CloudPlanner

Returns a new instance of CloudPlanner.



276
277
278
279
280
281
282
283
284
285
286
# File 'lib/bosh/director/deployment_plan/planner.rb', line 276

def initialize(options)
  @networks = self.class.index_by_name(options.fetch(:networks))
  @global_network_resolver = options.fetch(:global_network_resolver)
  @resource_pools = self.class.index_by_name(options.fetch(:resource_pools))
  @vm_types = self.class.index_by_name(options.fetch(:vm_types, {}))
  @disk_types = self.class.index_by_name(options.fetch(:disk_types))
  @availability_zones = options.fetch(:availability_zones_list)
  @compilation = options.fetch(:compilation)
  @ip_provider_factory = options.fetch(:ip_provider_factory)
  @logger = options.fetch(:logger)
end

Instance Attribute Details

#compilationObject

Returns the value of attribute compilation.



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

def compilation
  @compilation
end

Class Method Details

.index_by_name(collection) ⇒ Object



353
354
355
356
357
# File 'lib/bosh/director/deployment_plan/planner.rb', line 353

def self.index_by_name(collection)
  collection.inject({}) do |index, item|
    index.merge(item.name => item)
  end
end

Instance Method Details

#add_resource_pool(resource_pool) ⇒ Object



329
330
331
# File 'lib/bosh/director/deployment_plan/planner.rb', line 329

def add_resource_pool(resource_pool)
  @resource_pools[resource_pool.name] = resource_pool
end

#availability_zone(name) ⇒ Object



305
306
307
# File 'lib/bosh/director/deployment_plan/planner.rb', line 305

def availability_zone(name)
  @availability_zones[name]
end

#availability_zonesObject



309
310
311
# File 'lib/bosh/director/deployment_plan/planner.rb', line 309

def availability_zones
  @availability_zones.values
end

#deleted_network(name) ⇒ Object



296
297
298
299
300
301
302
303
# File 'lib/bosh/director/deployment_plan/planner.rb', line 296

def deleted_network(name)
  ManualNetwork.parse(
    {'subnets' => [], 'name' => name},
    [],
    @global_network_resolver,
    @logger
  )
end

#disk_type(name) ⇒ Object



349
350
351
# File 'lib/bosh/director/deployment_plan/planner.rb', line 349

def disk_type(name)
  @disk_types[name]
end

#disk_typesObject



341
342
343
# File 'lib/bosh/director/deployment_plan/planner.rb', line 341

def disk_types
  @disk_types.values
end

#ip_providerObject



288
289
290
# File 'lib/bosh/director/deployment_plan/planner.rb', line 288

def ip_provider
  @ip_provider ||= @ip_provider_factory.new_ip_provider(@networks)
end

#modelObject



292
293
294
# File 'lib/bosh/director/deployment_plan/planner.rb', line 292

def model
  nil
end

#network(name) ⇒ Object



337
338
339
# File 'lib/bosh/director/deployment_plan/planner.rb', line 337

def network(name)
  @networks[name]
end

#networksObject



333
334
335
# File 'lib/bosh/director/deployment_plan/planner.rb', line 333

def networks
  @networks.values
end

#resource_pool(name) ⇒ Object



317
318
319
# File 'lib/bosh/director/deployment_plan/planner.rb', line 317

def resource_pool(name)
  @resource_pools[name]
end

#resource_poolsObject



313
314
315
# File 'lib/bosh/director/deployment_plan/planner.rb', line 313

def resource_pools
  @resource_pools.values
end

#using_global_networking?Boolean

Returns:

  • (Boolean)


345
346
347
# File 'lib/bosh/director/deployment_plan/planner.rb', line 345

def using_global_networking?
  false
end

#vm_type(name) ⇒ Object



325
326
327
# File 'lib/bosh/director/deployment_plan/planner.rb', line 325

def vm_type(name)
  @vm_types[name]
end

#vm_typesObject



321
322
323
# File 'lib/bosh/director/deployment_plan/planner.rb', line 321

def vm_types
  @vm_types.values
end