awful 0.0.46 → 0.0.47
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/awful/auto_scaling.rb +24 -11
- data/lib/awful/cloudformation.rb +22 -2
- data/lib/awful/ec2.rb +13 -1
- data/lib/awful/elb.rb +12 -1
- 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: a9ba35ecdd70ca8fee5d800ba790c62c1f408155
|
4
|
+
data.tar.gz: 6b50ea11a998dadc5373a87178c26bde4304b789
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 876875b8a02dfc3fd79987da6bf1941911106fba7167b0a0b363222df69f4adbec0cb8e742b46a390af49437ea7711c549e2784a7b373ac912648b4987ae7d9c
|
7
|
+
data.tar.gz: 46ba584635090d505144bfd5d2791d2dcbe8e95f738919a31cd0b5fc8a0f521fc5dacc0d5ce8be2a42b11fb73883c015dcc9bf4a4ae1113c07fed8fc23d47435
|
data/lib/awful/auto_scaling.rb
CHANGED
@@ -2,6 +2,20 @@ module Awful
|
|
2
2
|
|
3
3
|
class AutoScaling < Cli
|
4
4
|
|
5
|
+
COLORS = {
|
6
|
+
Pending: :yellow,
|
7
|
+
InService: :green,
|
8
|
+
Terminating: :red,
|
9
|
+
HEALTHY: :green,
|
10
|
+
UNHEALTHY: :red,
|
11
|
+
}
|
12
|
+
|
13
|
+
no_commands do
|
14
|
+
def color(string)
|
15
|
+
set_color(string, COLORS.fetch(string.to_sym, :yellow))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
5
19
|
desc 'ls [PATTERN]', 'list autoscaling groups with name matching PATTERN'
|
6
20
|
method_option :long, aliases: '-l', default: false, desc: 'Long listing'
|
7
21
|
def ls(name = /./)
|
@@ -38,20 +52,19 @@ module Awful
|
|
38
52
|
method_option :long, aliases: '-l', default: false, desc: 'Long listing'
|
39
53
|
method_option :launch_configuration, aliases: '-L', default: false, desc: 'Get instance launch_configs'
|
40
54
|
def instances(name)
|
41
|
-
fields = if options[:long]
|
42
|
-
%i[ instance_id auto_scaling_group_name availability_zone lifecycle_state health_status launch_configuration_name ]
|
43
|
-
elsif options[:launch_configuration]
|
44
|
-
%i[ instance_id launch_configuration_name ]
|
45
|
-
else
|
46
|
-
%i[ instance_id ]
|
47
|
-
end
|
48
|
-
|
49
55
|
autoscaling.describe_auto_scaling_instances.map(&:auto_scaling_instances).flatten.select do |instance|
|
50
56
|
instance.auto_scaling_group_name.match(name)
|
51
57
|
end.tap do |instances|
|
52
|
-
|
53
|
-
|
54
|
-
|
58
|
+
if options[:long]
|
59
|
+
print_table instances.map { |i|
|
60
|
+
[i.instance_id, i.auto_scaling_group_name, i.availability_zone, color(i.lifecycle_state),
|
61
|
+
color(i.health_status), i.launch_configuration_name]
|
62
|
+
}
|
63
|
+
elsif options[:launch_configuration]
|
64
|
+
print_table instances.map { |i| [i.instance_id, i.launch_configuration_name] }
|
65
|
+
else
|
66
|
+
puts instances.map(&:instance_id)
|
67
|
+
end
|
55
68
|
end
|
56
69
|
end
|
57
70
|
|
data/lib/awful/cloudformation.rb
CHANGED
@@ -2,10 +2,30 @@ module Awful
|
|
2
2
|
|
3
3
|
class CloudFormation < Cli
|
4
4
|
|
5
|
+
COLORS = {
|
6
|
+
create_in_progress: :yellow,
|
7
|
+
delete_in_progress: :yellow,
|
8
|
+
update_in_progress: :yellow,
|
9
|
+
update_complete_cleanup_in_progress: :yellow,
|
10
|
+
create_failed: :red,
|
11
|
+
delete_failed: :red,
|
12
|
+
update_failed: :red,
|
13
|
+
create_complete: :green,
|
14
|
+
delete_complete: :green,
|
15
|
+
update_complete: :green,
|
16
|
+
delete_skipped: :yellow,
|
17
|
+
rollback_in_progress: :red,
|
18
|
+
rollback_complete: :red,
|
19
|
+
}
|
20
|
+
|
5
21
|
no_commands do
|
6
22
|
def cf
|
7
23
|
@cf ||= Aws::CloudFormation::Client.new
|
8
24
|
end
|
25
|
+
|
26
|
+
def color(string)
|
27
|
+
set_color(string, COLORS.fetch(string.downcase.to_sym, :blue))
|
28
|
+
end
|
9
29
|
end
|
10
30
|
|
11
31
|
desc 'ls [PATTERN]', 'list cloudformation stacks matching PATTERN'
|
@@ -23,7 +43,7 @@ module Awful
|
|
23
43
|
|
24
44
|
stacks.tap do |stacks|
|
25
45
|
if options[:long]
|
26
|
-
print_table stacks.map { |s| [s.stack_name, s.creation_time, s.stack_status, s.template_description] }
|
46
|
+
print_table stacks.map { |s| [s.stack_name, s.creation_time, color(s.stack_status), s.template_description] }
|
27
47
|
else
|
28
48
|
puts stacks.map(&:stack_name)
|
29
49
|
end
|
@@ -85,7 +105,7 @@ module Awful
|
|
85
105
|
desc 'events NAME', 'show events for stack with name NAME'
|
86
106
|
def events(name)
|
87
107
|
cf.describe_stack_events(stack_name: name).stack_events.tap do |events|
|
88
|
-
print_table events.map { |e| [e.timestamp, e.resource_status, e.resource_type, e.logical_resource_id, e.resource_status_reason] }
|
108
|
+
print_table events.map { |e| [e.timestamp, color(e.resource_status), e.resource_type, e.logical_resource_id, e.resource_status_reason] }
|
89
109
|
end
|
90
110
|
end
|
91
111
|
|
data/lib/awful/ec2.rb
CHANGED
@@ -4,11 +4,23 @@ module Awful
|
|
4
4
|
|
5
5
|
class Ec2 < Cli
|
6
6
|
|
7
|
+
COLORS = {
|
8
|
+
running: :green,
|
9
|
+
stopped: :yellow,
|
10
|
+
terminated: :red,
|
11
|
+
}
|
12
|
+
|
13
|
+
no_commands do
|
14
|
+
def color(string)
|
15
|
+
set_color(string, COLORS.fetch(string.to_sym, :yellow))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
7
19
|
desc 'ls [PATTERN]', 'list EC2 instances [with id or tags matching PATTERN]'
|
8
20
|
method_option :long, aliases: '-l', default: false, desc: 'Long listing'
|
9
21
|
def ls(name = /./)
|
10
22
|
fields = options[:long] ?
|
11
|
-
->(i) { [ (tag_name(i) || '-').slice(0..40), i.instance_id, i.instance_type, i.virtualization_type, i.placement.availability_zone, i.state.name,
|
23
|
+
->(i) { [ (tag_name(i) || '-').slice(0..40), i.instance_id, i.instance_type, i.virtualization_type, i.placement.availability_zone, color(i.state.name),
|
12
24
|
i.security_groups.map(&:group_name).join(',').slice(0..30), i.private_ip_address, i.public_ip_address ] } :
|
13
25
|
->(i) { [ tag_name(i) || i.instance_id ] }
|
14
26
|
|
data/lib/awful/elb.rb
CHANGED
@@ -2,6 +2,17 @@ module Awful
|
|
2
2
|
|
3
3
|
class Elb < Cli
|
4
4
|
|
5
|
+
COLORS = {
|
6
|
+
InService: :green,
|
7
|
+
OutOfService: :red,
|
8
|
+
}
|
9
|
+
|
10
|
+
no_commands do
|
11
|
+
def color(string)
|
12
|
+
set_color(string, COLORS.fetch(string.to_sym, :yellow))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
5
16
|
desc 'ls [PATTERN]', 'list vpcs [with any tags matching PATTERN]'
|
6
17
|
method_option :long, aliases: '-l', default: false, desc: 'Long listing'
|
7
18
|
def ls(name = /./)
|
@@ -30,7 +41,7 @@ module Awful
|
|
30
41
|
ec2.describe_instances(instance_ids: instances_by_id.keys).map(&:reservations).flatten.map(&:instances).flatten.map do |instance|
|
31
42
|
health = instances_by_id[instance.instance_id]
|
32
43
|
instance_name = tag_name(instance) || '-'
|
33
|
-
[ instance.instance_id, instance_name, instance.public_ip_address, health.state, health.reason_code, health.description ]
|
44
|
+
[ instance.instance_id, instance_name, instance.public_ip_address, color(health.state), health.reason_code, health.description ]
|
34
45
|
end.tap { |list| print_table list }
|
35
46
|
else
|
36
47
|
instances_by_id.keys.tap { |list| puts list }
|
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.47
|
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-10-
|
11
|
+
date: 2015-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|