kelbim 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bin/kelbim +11 -9
- data/lib/kelbim/client.rb +20 -0
- data/lib/kelbim/version.rb +1 -1
- data/lib/kelbim/wrapper/listener-collection.rb +1 -1
- data/lib/kelbim/wrapper/load-balancer-collection.rb +4 -1
- data/lib/kelbim/wrapper/policy-collection.rb +17 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWNlZWFhMDllMjU2ZjBjMGMzNWQ0ZjliMDdlODY1MmVjMDVmY2JhZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTkzNTdjZjk4NzIzMDg0YTdhMGUzOTVmNjZlYzhlMmM0NDk0ZmM5ZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZGM5MzBhOGQ0ZDFmMjUyOTVkMTBkZjJmMjcwMmY3NTY2MGZiM2IwNGJmZTYx
|
10
|
+
OWMxMjczYjlmNzgwYjI3NWQ2OTY0ZDY3YTk1MDVlMjZlYjVjNGY5N2YzYzFj
|
11
|
+
Mzg5ZDcyOGE1MDk4NzMxNTMwMWRmMmE3ODA3YjQzYWIyZWJiYmU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YzU1M2I2ZDMwYWMyZjExMTViYjliMmIzYWQ2NjUyOWNhYTZkNzg4ZWZlYzRi
|
14
|
+
NTdlZjllYzQ4NzRmMTkxYzg2NTZmMmM1ZWY4ZTIwMDc0ZWY3NjA2ZTA3MTk2
|
15
|
+
MzE4ZjQwNDQxMjMxZTlhMGJlMGZkNzIzN2NiOTI3MDZmZjk5MWU=
|
data/bin/kelbim
CHANGED
@@ -30,17 +30,19 @@ ARGV.options do |opt|
|
|
30
30
|
opt.on('-k', '--access-key ACCESS_KEY') {|v| access_key = v }
|
31
31
|
opt.on('-s', '--secret-key SECRET_KEY') {|v| secret_key = v }
|
32
32
|
opt.on('-r', '--region REGION') {|v| region = v }
|
33
|
-
opt.on('-a', '--apply') {
|
33
|
+
opt.on('-a', '--apply') { mode = :apply }
|
34
34
|
opt.on('-f', '--file FILE') {|v| file = v }
|
35
|
-
opt.on('',
|
36
|
-
opt.on('', '--
|
37
|
-
opt.on('
|
35
|
+
opt.on('-n', '--elb-names NAMES', Array) {|v| options[:elb_names] = v }
|
36
|
+
opt.on('', '--dry-run') { options[:dry_run] = true }
|
37
|
+
opt.on('', '--ec2s VPC_IDS', Array) {|v| options[:ec2s] = v }
|
38
|
+
opt.on('', '--without-deleting-policy') { options[:without_deleting_policy] = true }
|
39
|
+
opt.on('-e', '--export') { mode = :export }
|
38
40
|
opt.on('-o', '--output FILE') {|v| output_file = v }
|
39
|
-
opt.on('', '--split') {
|
40
|
-
opt.on('', '--split-more') {
|
41
|
-
opt.on('-t', '--test') {
|
42
|
-
opt.on('', '--show-load-balancers') {
|
43
|
-
opt.on('', '--show-policies') {
|
41
|
+
opt.on('', '--split') { split = true }
|
42
|
+
opt.on('', '--split-more') { split = :more }
|
43
|
+
opt.on('-t', '--test') { mode = :test }
|
44
|
+
opt.on('', '--show-load-balancers') { mode = :show_load_balancers }
|
45
|
+
opt.on('', '--show-policies') { mode = :show_policies }
|
44
46
|
opt.on('' , '--no-color') { options[:color] = false }
|
45
47
|
opt.on('' , '--debug') { options[:debug] = true }
|
46
48
|
opt.parse!
|
data/lib/kelbim/client.rb
CHANGED
@@ -120,6 +120,10 @@ module Kelbim
|
|
120
120
|
vpc_ids = @options.ec2.vpcs.map {|i| i.id }
|
121
121
|
|
122
122
|
dsl_ec2s.each do |vpc, ec2_dsl|
|
123
|
+
if @options.ec2s
|
124
|
+
next unless @options.ec2s.include?(vpc || 'classic')
|
125
|
+
end
|
126
|
+
|
123
127
|
if vpc and not vpc_ids.include?(vpc)
|
124
128
|
log(:warn, "EC2 `#{vpc}` is not found", :yellow)
|
125
129
|
next
|
@@ -143,6 +147,11 @@ module Kelbim
|
|
143
147
|
|
144
148
|
lb_list_dsl.each do |key, lb_dsl|
|
145
149
|
name = key[0]
|
150
|
+
|
151
|
+
if @options.elb_names
|
152
|
+
next unless @options.elb_names.include?(name)
|
153
|
+
end
|
154
|
+
|
146
155
|
lb_aws = lb_list_aws[key]
|
147
156
|
|
148
157
|
unless lb_aws
|
@@ -153,6 +162,11 @@ module Kelbim
|
|
153
162
|
|
154
163
|
lb_list_dsl.each do |key, lb_dsl|
|
155
164
|
name = key[0]
|
165
|
+
|
166
|
+
if @options.elb_names
|
167
|
+
next unless @options.elb_names.include?(name)
|
168
|
+
end
|
169
|
+
|
156
170
|
log(:info, "Comparing #{vpc || :classic} > #{name}", :intense_black)
|
157
171
|
|
158
172
|
lb_aws = lb_list_aws.delete(key)
|
@@ -160,6 +174,12 @@ module Kelbim
|
|
160
174
|
end
|
161
175
|
|
162
176
|
lb_list_aws.each do |key, lb_aws|
|
177
|
+
name = key[0]
|
178
|
+
|
179
|
+
if @options.elb_names
|
180
|
+
next unless @options.elb_names.include?(name)
|
181
|
+
end
|
182
|
+
|
163
183
|
lb_aws.delete
|
164
184
|
end
|
165
185
|
end
|
data/lib/kelbim/version.rb
CHANGED
@@ -17,7 +17,7 @@ module Kelbim
|
|
17
17
|
:port => dsl.port,
|
18
18
|
:instance_protocol => dsl.instance_protocol,
|
19
19
|
:instance_port => dsl.instance_port,
|
20
|
-
:policies =>
|
20
|
+
:policies => [], # Listener作成時に同時にPolicyを作成することはできない
|
21
21
|
:load_balancer => load_balancer,
|
22
22
|
})
|
23
23
|
|
@@ -31,10 +31,13 @@ module Kelbim
|
|
31
31
|
:vpc_id => vpc,
|
32
32
|
:instances => [], # instancesはLoadBalancerの処理で更新
|
33
33
|
:scheme => dsl.scheme,
|
34
|
-
:listeners => dsl.listeners.map {|i| LoadBalancer::ListenerCollection.create_mock_listener(i, @load_balancer) },
|
35
34
|
:health_check => {}, # health_checkはLoadBalancerの処理で更新
|
36
35
|
})
|
37
36
|
|
37
|
+
lb.listeners = dsl.listeners.map do |lstnr|
|
38
|
+
LoadBalancer::ListenerCollection.create_mock_listener(lstnr, lb)
|
39
|
+
end
|
40
|
+
|
38
41
|
if vpc
|
39
42
|
lb.subnets = dsl.subnets.map {|i| OpenStruct.new(:id => i) }
|
40
43
|
sg_names = @options.security_group_names[vpc] || {}
|
@@ -14,7 +14,7 @@ module Kelbim
|
|
14
14
|
include Logger::ClientHelper
|
15
15
|
|
16
16
|
class << self
|
17
|
-
def create_mock_policy(dsl)
|
17
|
+
def create_mock_policy(dsl, listener)
|
18
18
|
dsl_type, dsl_name_or_attrs = dsl
|
19
19
|
policy_type = PolicyTypes.symbol_to_string(dsl_type)
|
20
20
|
plcy = OpenStruct.new(:type => policy_type)
|
@@ -23,12 +23,25 @@ module Kelbim
|
|
23
23
|
plcy.name = dsl_name_or_attrs
|
24
24
|
plcy.attribute = {'<new policy attribute name>' => ['<new policy attribute value>']}
|
25
25
|
else
|
26
|
-
plcy.name =
|
26
|
+
plcy.name = create_policy_name(listener, policy_type).sub(/\w+-\w+-\w+-\w+-\w+\Z/, '...')
|
27
27
|
plcy.attributes = PolicyTypes.unexpand(dsl_type, dsl_name_or_attrs)
|
28
28
|
end
|
29
29
|
|
30
30
|
return plcy
|
31
31
|
end
|
32
|
+
|
33
|
+
def create_policy_name(listener, policy_type)
|
34
|
+
[
|
35
|
+
listener.load_balancer.vpc_id || :classic,
|
36
|
+
listener.load_balancer.name,
|
37
|
+
listener.protocol,
|
38
|
+
listener.port,
|
39
|
+
listener.instance_protocol,
|
40
|
+
listener.instance_port,
|
41
|
+
policy_type,
|
42
|
+
UUID.new.generate,
|
43
|
+
].join('-').gsub(/\s/, '_')
|
44
|
+
end
|
32
45
|
end # of class methods
|
33
46
|
|
34
47
|
def initialize(policies, listener, options)
|
@@ -49,7 +62,7 @@ module Kelbim
|
|
49
62
|
log_id += PolicyTypes.name?(dsl_name_or_attrs) ? dsl_name_or_attrs : dsl_name_or_attrs.inspect
|
50
63
|
log(:info, 'Create Policy', :cyan, log_id)
|
51
64
|
|
52
|
-
plcy = @options.dry_run ? self.class.create_mock_policy(dsl) : create_policy(dsl)
|
65
|
+
plcy = @options.dry_run ? self.class.create_mock_policy(dsl, @listener) : create_policy(dsl)
|
53
66
|
Policy.new(plcy, @listener, @options)
|
54
67
|
end
|
55
68
|
|
@@ -65,19 +78,8 @@ module Kelbim
|
|
65
78
|
raise "Can't find Policy: #{dsl_name_or_attrs} in #{@listener.load_balancer.vpc_id || :classic} > #{@listener.load_balancer.name}"
|
66
79
|
end
|
67
80
|
else
|
68
|
-
policy_name = [
|
69
|
-
@listener.load_balancer.vpc_id || :classic,
|
70
|
-
@listener.load_balancer.name,
|
71
|
-
@listener.protocol,
|
72
|
-
@listener.port,
|
73
|
-
@listener.instance_protocol,
|
74
|
-
@listener.instance_port,
|
75
|
-
policy_type,
|
76
|
-
UUID.new.generate,
|
77
|
-
].join('-').gsub(/\s/, '_')
|
78
|
-
|
79
81
|
plcy = @listener.load_balancer.policies.create(
|
80
|
-
|
82
|
+
self.class.create_policy_name(@listener, policy_type),
|
81
83
|
policy_type,
|
82
84
|
PolicyTypes.unexpand(dsl_type, dsl_name_or_attrs)
|
83
85
|
)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kelbim
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|