Class: Bosh::Director::DeploymentPlan::NetworkPlanner::VipStaticIpsPlanner

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

Instance Method Summary collapse

Constructor Details

#initialize(network_planner, logger) ⇒ VipStaticIpsPlanner

Returns a new instance of VipStaticIpsPlanner.



4
5
6
7
# File 'lib/bosh/director/deployment_plan/network_planner/vip_static_ips_planner.rb', line 4

def initialize(network_planner, logger)
  @network_planner = network_planner
  @logger = logger
end

Instance Method Details

#add_vip_network_plans(instance_plans, vip_networks) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/bosh/director/deployment_plan/network_planner/vip_static_ips_planner.rb', line 9

def add_vip_network_plans(instance_plans, vip_networks)
  vip_networks.each do |vip_network|
    static_ips = vip_network.static_ips.dup

    unplaced_instance_plans = []
    instance_plans.each do |instance_plan|
      static_ip = get_instance_static_ip(instance_plan.existing_instance, vip_network.name, static_ips)
      if static_ip
        instance_plan.network_plans << @network_planner.network_plan_with_static_reservation(instance_plan, vip_network, static_ip)
      else
        unplaced_instance_plans << instance_plan
      end
    end

    unplaced_instance_plans.each do |instance_plan|
      static_ip = static_ips.shift
      instance_plan.network_plans << @network_planner.network_plan_with_static_reservation(instance_plan, vip_network, static_ip)
    end
  end
end