class Kelbim::DSL::EC2::LoadBalancer
Public Class Methods
new(context, name, vpc, internal, &block)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 8 def initialize(context, name, vpc, internal, &block) @name = name @vpc = vpc @error_identifier = "LoadBalancer `#{name}`" @context = context.merge(:load_balancer_name => name) @result = OpenStruct.new({ :name => name, :instances => [], :internal => internal, :scheme => internal ? 'internal' : 'internet-facing', }) instance_eval(&block) end
Public Instance Methods
any_instances()
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 54 def any_instances call_once(:instances) @result.any_instances = true end
attributes(&block)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 69 def attributes(&block) call_once(:attributes) @result.attributes = Attributes.new(@context, @name, &block).result end
availability_zones(*values)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 86 def availability_zones(*values) call_once(:availability_zone) raise "#{@error_identifier}: SecurityGroup cannot be specified in EC2-VPC" if @vpc @result.availability_zones = values end
health_check(&block)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 64 def health_check(&block) call_once(:health_check) @result.health_check = HealthCheck.new(@context, @name, &block).result end
instances(*values)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 44 def instances(*values) call_once(:instances) values.each do |instance_id_or_name| instance_id = instance_id_or_name not_include(instance_id_or_name, @result.instances) @result.instances << instance_id end end
listeners(&block)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 59 def listeners(&block) call_once(:listeners) @result.listeners = Listeners.new(@context, @name, &block).result end
result()
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 24 def result required(:listeners, @result.listeners) required(:health_check, @result.health_check) #required(:attributes, @result.attributes) if @vpc required(:subnets, @result.subnets) required(:security_groups, @result.security_groups) else required(:availability_zones, @result.availability_zones) end @result end
security_groups(*values)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 80 def security_groups(*values) call_once(:security_groups) raise "#{@error_identifier}: SecurityGroup cannot be specified in EC2-Classic" unless @vpc @result.security_groups = values end
spec(&block)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 39 def spec(&block) call_once(:spec) @result.spec = block end
subnets(*values)
click to toggle source
# File lib/kelbim/dsl/load-balancer.rb, line 74 def subnets(*values) call_once(:subnets) raise "#{@error_identifier}: Subnet cannot be specified in EC2-Classic" unless @vpc @result.subnets = values end