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 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