kelbim 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|