awful 0.0.33 → 0.0.34
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 +4 -4
- data/lib/awful/auto_scaling.rb +17 -10
- data/lib/awful/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a551cb4dbe1136540c75856683dae9bb4b0b970c
|
4
|
+
data.tar.gz: 822ff26d3ff6b5e645cf9e8be199dad68229bbe9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b326241de113bd37d6be5f8ed57e010442735f24113ca08c8c7ef2e7a67baa672e5d89283c28cd9b358cd23773ca16d14091a83a32c5cbe2fff427ff1142223
|
7
|
+
data.tar.gz: d918d16882a24b63d36222fab8923d858ecdf2f1a674ff011430066e5e6a69ce1f15d45603b09522379f89c0365dbaca581375d8588d28c18bc9f614274d01a4
|
data/lib/awful/auto_scaling.rb
CHANGED
@@ -252,34 +252,41 @@ module Awful
|
|
252
252
|
end
|
253
253
|
end
|
254
254
|
|
255
|
-
desc 'old_instances
|
255
|
+
desc 'old_instances ASGS', 'Deal with instances that are not on their ASG current launch config'
|
256
256
|
method_option :long, aliases: '-l', default: false, desc: 'Long listing'
|
257
|
+
method_option :groups, aliases: '-g', default: false, desc: 'Just list names of ASGs with outdated instances'
|
257
258
|
method_option :detach, aliases: '-D', default: false, desc: 'Detach old instances from this ASG'
|
258
259
|
method_option :decrement, aliases: '-d', default: false, desc: 'should decrement desired capacity when detaching instances from ASG'
|
259
260
|
method_option :deregister, aliases: '-E', default: false, desc: 'Deregister old instances from ELB for this ASG'
|
260
261
|
method_option :terminate, aliases: '-t', default: false, desc: 'Terminate old instances'
|
261
|
-
def old_instances(
|
262
|
-
|
263
|
-
|
264
|
-
|
262
|
+
def old_instances(*names)
|
263
|
+
asgs = autoscaling.describe_auto_scaling_groups(auto_scaling_group_names: names).map(&:auto_scaling_groups).flatten
|
264
|
+
|
265
|
+
asgs.each_with_object({}) do |asg, hash|
|
266
|
+
outdated = asg.instances.select do |instance|
|
267
|
+
instance.launch_configuration_name != asg.launch_configuration_name
|
268
|
+
end
|
269
|
+
hash[asg.auto_scaling_group_name] = outdated unless outdated.empty?
|
265
270
|
end.tap do |olds|
|
266
271
|
if olds.empty?
|
267
272
|
# noop
|
268
273
|
elsif options[:detach]
|
269
|
-
autoscaling.detach_instances(auto_scaling_group_name: name, instance_ids: olds.map(&:instance_id), should_decrement_desired_capacity: options[:decrement])
|
274
|
+
autoscaling.detach_instances(auto_scaling_group_name: name, instance_ids: olds.values.flatten.map(&:instance_id), should_decrement_desired_capacity: options[:decrement])
|
270
275
|
elsif options[:deregister]
|
271
276
|
asg.load_balancer_names.map do |elb_name|
|
272
|
-
elb.deregister_instances_from_load_balancer(load_balancer_name: elb_name, instances: olds.map { |i| { instance_id: i.instance_id } })
|
277
|
+
elb.deregister_instances_from_load_balancer(load_balancer_name: elb_name, instances: olds.values.flatten.map { |i| { instance_id: i.instance_id } })
|
273
278
|
end.tap { puts "Deregistered: #{olds.map(&:instance_id).join(',')}" }
|
274
279
|
elsif options[:terminate]
|
275
|
-
olds.map do |instance|
|
280
|
+
olds.values.flatten.map do |instance|
|
276
281
|
autoscaling.terminate_instance_in_auto_scaling_group(instance_id: instance.instance_id, should_decrement_desired_capacity: options[:decrement] && true)
|
277
282
|
instance.instance_id
|
278
283
|
end.tap { |ids| say("Terminated: #{ids.join(',')}", :yellow) }
|
284
|
+
elsif options[:groups]
|
285
|
+
puts olds.keys
|
279
286
|
elsif options[:long]
|
280
|
-
print_table olds.map { |i| [
|
287
|
+
print_table olds.map { |asg, ins| ins.map { |i| [i.instance_id, asg, i.launch_configuration_name] }.flatten }
|
281
288
|
else
|
282
|
-
puts olds.map(&:instance_id)
|
289
|
+
puts olds.values.flatten.map(&:instance_id)
|
283
290
|
end
|
284
291
|
end
|
285
292
|
end
|
data/lib/awful/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awful
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.34
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ric Lister
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|