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/health-check.rb,
lib/kelbim/dsl/load-balancer.rb
Defined Under Namespace
Classes: HealthCheck, Listeners
Instance Method Summary
collapse
Constructor Details
#initialize(name, vpc, internal, &block) ⇒ LoadBalancer
Returns a new instance of LoadBalancer.
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 12
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
#availability_zones(*values) ⇒ Object
78
79
80
81
82
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 78
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
61
62
63
64
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 61
def health_check(&block)
call_once(:health_check)
@result.health_check = HealthCheck.new(@name, &block).result
end
|
#instances(*values) ⇒ Object
46
47
48
49
50
51
52
53
54
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 46
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
56
57
58
59
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 56
def listeners(&block)
call_once(:listeners)
@result.listeners = Listeners.new(@name, &block).result
end
|
#result ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 27
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
72
73
74
75
76
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 72
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
41
42
43
44
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 41
def spec(&block)
call_once(:spec)
@result.spec = block
end
|
#subnets(*values) ⇒ Object
66
67
68
69
70
|
# File 'lib/kelbim/dsl/load-balancer.rb', line 66
def subnets(*values)
call_once(:subnets)
raise "#{@error_identifier}: Subnet cannot be specified in EC2-Classic" unless @vpc
@result.subnets = values
end
|