class Bosh::Director::DeploymentPlan::Link

tested in links_resolver_spec

Attributes

name[R]

Public Class Methods

new(name, source, template, network_name = nil) click to toggle source
# File lib/bosh/director/deployment_plan/links/link.rb, line 8
def initialize(name, source, template, network_name = nil)
  @name = name
  @source = source
  @network_name = network_name
  @template = template
end

Public Instance Methods

spec() click to toggle source
# File lib/bosh/director/deployment_plan/links/link.rb, line 15
def spec
  {
    'networks' => @source.networks.map { |network| network.name },
    'properties' => @template.provides_link_info(@source.name, @name)['mapped_properties'],
    'instances' => @source.needed_instance_plans.map do |instance_plan|
      instance = instance_plan.instance
      availability_zone = instance.availability_zone.name if instance.availability_zone
      {
        'name' => @source.name,
        'index' => instance.index,
        'bootstrap' => instance.bootstrap?,
        'id' => instance.uuid,
        'az' => availability_zone,
        'address' => instance_plan.network_address(@network_name),
        'addresses' => instance_plan.network_addresses,
      }
    end
  }
end