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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzYxNjc1NDAwN2VmMWRmZDM4Mzg3ZGVjMWQ0NGZhMWIzZGJmMmQ1Nw==
4
+ NWNlZWFhMDllMjU2ZjBjMGMzNWQ0ZjliMDdlODY1MmVjMDVmY2JhZA==
5
5
  data.tar.gz: !binary |-
6
- YzNlOTcyZWU3M2QyM2FkMTljZTIxYzRlNjRlOGUzNDZhMWI0MzQ5MQ==
6
+ YTkzNTdjZjk4NzIzMDg0YTdhMGUzOTVmNjZlYzhlMmM0NDk0ZmM5ZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTYwYjY2OWRkNmUwODRkYWU2M2QyZWE2Y2Q5MmI5YzBhNzc3ZGZiOGU4YzUy
10
- MzBjYzJhZmRkMjQwY2E0NWIzMTFhZWE0MjIzZTMwYTJlYjBlZjNlYmIzZWJj
11
- NDM2NWFkMjIwYTJlOWFiYjJjODg1ZmRhNTQ5MTdiMmFhN2QyOGU=
9
+ ZGM5MzBhOGQ0ZDFmMjUyOTVkMTBkZjJmMjcwMmY3NTY2MGZiM2IwNGJmZTYx
10
+ OWMxMjczYjlmNzgwYjI3NWQ2OTY0ZDY3YTk1MDVlMjZlYjVjNGY5N2YzYzFj
11
+ Mzg5ZDcyOGE1MDk4NzMxNTMwMWRmMmE3ODA3YjQzYWIyZWJiYmU=
12
12
  data.tar.gz: !binary |-
13
- ZjlhMmE2NTg3N2Q4NmVmODVlM2YwYmYwYWUyNzZhNDQ4NGQ1ODE2MmY5ODJm
14
- N2VkYmNiZjIwZDk3Mjk4YWRhZTY1MjJiMmJkMWI2YWVlZmZjMzJiMDE3NWI4
15
- MTI3N2M3YTY0MjI0YWI2ZTFkOTVhOTYzMTI5OTgzYzA2YmJhYjg=
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') {|v| mode = :apply }
33
+ opt.on('-a', '--apply') { mode = :apply }
34
34
  opt.on('-f', '--file FILE') {|v| file = v }
35
- opt.on('', '--dry-run') {|v| options[:dry_run] = true }
36
- opt.on('', '--without-deleting-policy') {|v| options[:without_deleting_policy] = true }
37
- opt.on('-e', '--export') {|v| mode = :export }
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') {|v| split = true }
40
- opt.on('', '--split-more') {|v| split = :more }
41
- opt.on('-t', '--test') {|v| mode = :test }
42
- opt.on('', '--show-load-balancers') {|v| mode = :show_load_balancers }
43
- opt.on('', '--show-policies') {|v| mode = :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
@@ -1,5 +1,5 @@
1
1
  module Kelbim
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
4
4
 
5
5
  Version = Kelbim::VERSION
@@ -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 => dsl.policies.map {|i| Listener::PolicyCollection.create_mock_policy(i) },
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 = '<new policy 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
- policy_name,
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.3
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-05 00:00:00.000000000 Z
11
+ date: 2013-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk