class Bosh::Director::DeploymentPlan::CloudPlanner

Attributes

compilation[RW]

Public Class Methods

index_by_name(collection) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 389
def self.index_by_name(collection)
  collection.inject({}) do |index, item|
    index.merge(item.name => item)
  end
end
new(options) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 299
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, {}))
  @vm_extensions = self.class.index_by_name(options.fetch(:vm_extensions, {}))
  @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

Public Instance Methods

add_resource_pool(resource_pool) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 365
def add_resource_pool(resource_pool)
  @resource_pools[resource_pool.name] = resource_pool
end
availability_zone(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 329
def availability_zone(name)
  @availability_zones[name]
end
availability_zones() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 333
def availability_zones
  @availability_zones.values
end
deleted_network(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 320
def deleted_network(name)
  ManualNetwork.parse(
    {'subnets' => [], 'name' => name},
    [],
    @global_network_resolver,
    @logger
  )
end
disk_type(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 385
def disk_type(name)
  @disk_types[name]
end
disk_types() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 377
def disk_types
  @disk_types.values
end
ip_provider() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 312
def ip_provider
  @ip_provider ||= @ip_provider_factory.new_ip_provider(@networks)
end
model() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 316
def model
  nil
end
network(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 373
def network(name)
  @networks[name]
end
networks() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 369
def networks
  @networks.values
end
resource_pool(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 341
def resource_pool(name)
  @resource_pools[name]
end
resource_pools() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 337
def resource_pools
  @resource_pools.values
end
using_global_networking?() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 381
def using_global_networking?
  false
end
vm_extension(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 357
def vm_extension(name)
  unless @vm_extensions.has_key?(name)
    raise "The vm_extension '#{name}' has not been configured in cloud-config."
  end

  @vm_extensions[name]
end
vm_extensions() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 353
def vm_extensions
  @vm_extensions.values
end
vm_type(name) click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 349
def vm_type(name)
  @vm_types[name]
end
vm_types() click to toggle source
# File lib/bosh/director/deployment_plan/planner.rb, line 345
def vm_types
  @vm_types.values
end