Class: Kelbim::DSL::EC2::LoadBalancer
- Inherits:
-
Object
- Object
- Kelbim::DSL::EC2::LoadBalancer
show all
- Includes:
- Checker
- Defined in:
- lib/kelbim/dsl/listener.rb,
lib/kelbim/dsl/listeners.rb,
lib/kelbim/dsl/attributes.rb,
lib/kelbim/dsl/health-check.rb,
lib/kelbim/dsl/load-balancer.rb
Defined Under Namespace
Classes: Attributes, HealthCheck, Listeners
Instance Method Summary
collapse
Constructor Details
#initialize(name, vpc, internal, &block) ⇒ LoadBalancer
Returns a new instance of LoadBalancer.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 13
def initialize(name, vpc, internal, &block)
@name = name
@vpc = vpc
@error_identifier = "LoadBalancer `#{name}`"
@result = OpenStruct.new({
:name => name,
:instances => [],
:internal => internal,
:scheme => internal ? 'internal' : 'internet-facing',
})
instance_eval(&block)
end
|
Instance Method Details
#attributes(&block) ⇒ Object
68
69
70
71
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 68
def attributes(&block)
call_once(:attributes)
@result.attributes = Attributes.new(@name, &block).result
end
|
#availability_zones(*values) ⇒ Object
85
86
87
88
89
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 85
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) ⇒ Object
63
64
65
66
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 63
def health_check(&block)
call_once(:health_check)
@result.health_check = HealthCheck.new(@name, &block).result
end
|
#instances(*values) ⇒ Object
48
49
50
51
52
53
54
55
56
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 48
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) ⇒ Object
58
59
60
61
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 58
def listeners(&block)
call_once(:listeners)
@result.listeners = Listeners.new(@name, &block).result
end
|
#result ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 28
def result
required(:listeners, @result.listeners)
required(:health_check, @result.health_check)
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) ⇒ Object
79
80
81
82
83
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 79
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) ⇒ Object
43
44
45
46
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 43
def spec(&block)
call_once(:spec)
@result.spec = block
end
|
#subnets(*values) ⇒ Object
73
74
75
76
77
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 73
def subnets(*values)
call_once(:subnets)
raise "#{@error_identifier}: Subnet cannot be specified in EC2-Classic" unless @vpc
@result.subnets = values
end
|