class Kelbim::ELBWrapper::LoadBalancerCollection
Public Class Methods
new(load_balancers, options)
click to toggle source
# File lib/kelbim/wrapper/load-balancer-collection.rb, line 6 def initialize(load_balancers, options) @load_balancers = load_balancers @options = options end
Public Instance Methods
create(dsl, vpc)
click to toggle source
# File lib/kelbim/wrapper/load-balancer-collection.rb, line 17 def create(dsl, vpc) log(:info, 'Create LoadBalancer', :cyan, "#{vpc || :classic} > #{dsl.name}") if @options.dry_run listeners = dsl.listeners lb = OpenStruct.new({ :id => "<new load balancer name=#{dsl.name}>", :name => dsl.name, :vpc_id => vpc, :instances => [], # instancesはLoadBalancerの処理で更新 :scheme => dsl.scheme, :health_check => {}, # health_checkはLoadBalancerの処理で更新 :attributes => {}, # attributesはLoadBalancerの処理で更新 }) lb.listeners = dsl.listeners.map do |lstnr| LoadBalancer::ListenerCollection.create_mock_listener(lstnr, lb) end if vpc lb.subnets = dsl.subnets.map {|i| OpenStruct.new(:id => i) } sg_names = @options.security_group_names[vpc] || {} lb.security_group_ids = dsl.security_groups {|i| sg_names.key(i) || i } else lb.availability_zones = dsl.availability_zones.map {|i| OpenStruct.new(:name => i) } end else opts = { :scheme => dsl.scheme, :listeners => [], } # instancesはLoadBalancerの処理で更新 dsl.listeners.each do |lstnr| lstnr_opts = LoadBalancer::ListenerCollection.create_listener_options(lstnr, @options.iam) opts[:listeners] << lstnr_opts end if vpc opts[:subnets] = dsl.subnets.map {|i| AWS::EC2::Subnet.new(i) } sg_names = @options.security_group_names[vpc] || {} opts[:security_groups] = dsl.security_groups.map do |i| AWS::EC2::SecurityGroup.new(sg_names.key(i) || i) end else opts[:availability_zones] = dsl.availability_zones.map {|i| AWS::EC2::AvailabilityZone.new(i) } end # health_check、attributesはLoadBalancerの処理で更新 lb = @load_balancers.create(dsl.name, opts) @options.updated = true end LoadBalancer.new(lb, @options) end
each() { |load_balancer| ... }
click to toggle source
# File lib/kelbim/wrapper/load-balancer-collection.rb, line 11 def each @load_balancers.each do |lb| yield(LoadBalancer.new(lb, @options)) end end