awful 0.0.15 → 0.0.16
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 +36 -0
- data/lib/awful/elb.rb +20 -7
- 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: d86db7d836b9f87cbdef6d7d0fcb557d98a8c774
|
4
|
+
data.tar.gz: 0720786aa239a62ad628f17f77b30e85b7415c6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e5579d26928c00946f87b2d07cc014c174e62d6fb51aa656bd6ed9617893bb2342904ab169e02acee17e65809cbd92b0ad11c3f34ee154f29ec127492b764c7
|
7
|
+
data.tar.gz: da0c1adfac59ce33d2d4e1499fba5cc2ae51115a71cc910dc8da892842334304096b8e5b8cf11da6ed4d2490c9c34924e2fa54e9916f244c2e5d4aaba497377b
|
data/lib/awful/auto_scaling.rb
CHANGED
@@ -123,6 +123,12 @@ module Awful
|
|
123
123
|
## update the group
|
124
124
|
autoscaling.update_auto_scaling_group(only_keys_matching(opt, whitelist))
|
125
125
|
|
126
|
+
# ## update load_balancers if given
|
127
|
+
# ## TODO: maybe delete instead if empty?
|
128
|
+
# if opt[:load_balancer_names]
|
129
|
+
# autoscaling.attach_load_balancers(auto_scaling_group_name: name, load_balancer_names: opt[:load_balancer_names])
|
130
|
+
# end
|
131
|
+
|
126
132
|
## update any tags
|
127
133
|
if opt[:tags]
|
128
134
|
tags = opt[:tags].map { |tag| tag.merge(resource_id: name, resource_type: 'auto-scaling-group') }
|
@@ -182,6 +188,36 @@ module Awful
|
|
182
188
|
end
|
183
189
|
end
|
184
190
|
|
191
|
+
desc 'processes', 'describe scaling process types for use with suspend/resume'
|
192
|
+
def processes
|
193
|
+
autoscaling.describe_scaling_process_types.processes.map(&:process_name).sort.tap do |procs|
|
194
|
+
puts procs
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
desc 'suspend NAME [PROCS]', 'suspend all [or listed] processes for auto-scaling group NAME'
|
199
|
+
method_option :list, aliases: '-l', default: false, type: :boolean, desc: 'list currently suspended processes'
|
200
|
+
def suspend(name, *procs)
|
201
|
+
if options[:list]
|
202
|
+
autoscaling.describe_auto_scaling_groups(auto_scaling_group_names: Array(name)).map(&:auto_scaling_groups).flatten.first.suspended_processes.tap do |list|
|
203
|
+
print_table list.map{ |proc| [ proc.process_name, proc.suspension_reason] }
|
204
|
+
end
|
205
|
+
elsif procs.empty?
|
206
|
+
autoscaling.suspend_processes(auto_scaling_group_name: name)
|
207
|
+
else
|
208
|
+
autoscaling.suspend_processes(auto_scaling_group_name: name, scaling_processes: procs)
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
desc 'resume NAME [PROCS]', 'resume all [or listed] processes for auto-scaling group NAME'
|
213
|
+
def resume(name, *procs)
|
214
|
+
if procs.empty?
|
215
|
+
autoscaling.resume_processes(auto_scaling_group_name: name)
|
216
|
+
else
|
217
|
+
autoscaling.resume_processes(auto_scaling_group_name: name, scaling_processes: procs)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
185
221
|
end
|
186
222
|
|
187
223
|
end
|
data/lib/awful/elb.rb
CHANGED
@@ -21,13 +21,16 @@ module Awful
|
|
21
21
|
desc 'instances NAME', 'list instances and states for elb NAME'
|
22
22
|
def instances(name)
|
23
23
|
instances = elb.describe_instance_health(load_balancer_name: name).map(&:instance_states).flatten
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
24
|
+
if instances.empty?
|
25
|
+
puts 'no instances'
|
26
|
+
else
|
27
|
+
instances_by_id = instances.inject({}) { |hash,instance| hash[instance.instance_id] = instance; hash }
|
28
|
+
ec2.describe_instances(instance_ids: instances_by_id.keys).map(&:reservations).flatten.map(&:instances).flatten.map do |instance|
|
29
|
+
health = instances_by_id[instance.instance_id]
|
30
|
+
[ instance.tags.map(&:value).sort.join(','), instance.public_ip_address, health.state, health.reason_code, health.description ]
|
31
|
+
end.tap do |list|
|
32
|
+
print_table list
|
33
|
+
end
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
@@ -80,6 +83,16 @@ module Awful
|
|
80
83
|
end
|
81
84
|
end
|
82
85
|
|
86
|
+
desc 'register INSTANCES', 'register listed instance IDs with ELB'
|
87
|
+
def register(name, *instance_ids)
|
88
|
+
elb.register_instances_with_load_balancer(load_balancer_name: name, instances: instance_ids.map{ |id| {instance_id: id} })
|
89
|
+
end
|
90
|
+
|
91
|
+
desc 'deregister INSTANCES', 'deregister listed instance IDs from ELB'
|
92
|
+
def deregister(name, *instance_ids)
|
93
|
+
elb.deregister_instances_from_load_balancer(load_balancer_name: name, instances: instance_ids.map{ |id| {instance_id: id} })
|
94
|
+
end
|
95
|
+
|
83
96
|
end
|
84
97
|
|
85
98
|
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.16
|
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-06
|
11
|
+
date: 2015-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|