awful 0.0.57 → 0.0.58

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e64a52979aa70af47339692bfb86c1447d90de5
4
- data.tar.gz: 44bcf70e24a6bb1a217efa4ecceabcce99c1304d
3
+ metadata.gz: 82532df739883f1b25a7b7be0b92fd88c521028a
4
+ data.tar.gz: dfdb638efb7a51acb47aefdcb8f5e7bc6df13acb
5
5
  SHA512:
6
- metadata.gz: 2b623c8ce409b1a98e9d0ccf9b90e8e76c5bfd51fc8dfedb79223fdeb880b616eccbc1acbc6500d13f1f59832b3cbd2f81fc1f5c24cda0d3ddad559a95b97b91
7
- data.tar.gz: e59c3ea8a76527a5d67bc8e285bde396167cee0b094dcaddcb0a24dad5fa25f1b00fe21959466536da45b532c1547c2d239e9cb26aa4f0b61bc705ad41f0268a
6
+ metadata.gz: f2bd86aa8d5c5345aec0cff44296722f1f878e523c528ac7f7390349a217a89b00aede555558614bc4ad8ce32f2578b529c952464cd176a3a4a07c904a4a5dfc
7
+ data.tar.gz: 78d510e6dc5a29c80f8e32e110f952d655eb5c04f658eef2520709a6076396e620e0ee9f8623a49435ae7afb3b27af80e61a166a03e38565910cea6e207e5ff8
data/bin/iam ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby
2
+ #-*- mode: ruby; -*-
3
+
4
+ require 'awful'
5
+ require 'awful/iam'
6
+
7
+ Awful::IAM.start(ARGV)
@@ -8,8 +8,8 @@ module Awful
8
8
  InService: :green,
9
9
  Terminating: :red,
10
10
  ## health statuses
11
- HEALTHY: :green,
12
- UNHEALTHY: :red,
11
+ Healthy: :green,
12
+ Unhealthy: :red,
13
13
  ## activity status
14
14
  Successful: :green,
15
15
  Failed: :red,
@@ -151,22 +151,25 @@ module Awful
151
151
  def update(name, file = nil)
152
152
  opt = load_cfg(options, file)
153
153
 
154
- whitelist = %i[auto_scaling_group_name launch_configuration_name min_size max_size desired_capacity default_cooldown availability_zones
155
- health_check_type health_check_grace_period placement_group vpc_zone_identifier termination_policies ]
154
+ ## allow matching by group name or name tag, but ensure we get only one
155
+ asgs = all_matching_asgs(name)
156
+ if asgs.length < 1
157
+ warn "no match for #{name}"
158
+ return
159
+ elsif asgs.length > 1
160
+ warn "ambiguous match for #{name}:", asgs.map(&:auto_scaling_group_name)
161
+ return
162
+ end
156
163
 
157
164
  ## cleanup the group options
158
- opt[:auto_scaling_group_name] = name
165
+ opt[:auto_scaling_group_name] = asgs.first.auto_scaling_group_name
159
166
  opt = remove_empty_strings(opt)
160
167
 
161
168
  ## update the group
169
+ whitelist = %i[auto_scaling_group_name launch_configuration_name min_size max_size desired_capacity default_cooldown availability_zones
170
+ health_check_type health_check_grace_period placement_group vpc_zone_identifier termination_policies ]
162
171
  autoscaling.update_auto_scaling_group(only_keys_matching(opt, whitelist))
163
172
 
164
- # ## update load_balancers if given
165
- # ## TODO: maybe delete instead if empty?
166
- # if opt[:load_balancer_names]
167
- # autoscaling.attach_load_balancers(auto_scaling_group_name: name, load_balancer_names: opt[:load_balancer_names])
168
- # end
169
-
170
173
  ## update any tags
171
174
  if opt[:tags]
172
175
  tags = opt[:tags].map { |tag| tag.merge(resource_id: name, resource_type: 'auto-scaling-group') }
data/lib/awful/elb.rb CHANGED
@@ -37,7 +37,10 @@ module Awful
37
37
  desc 'instances NAME', 'list instances and states for elb NAME'
38
38
  method_option :long, aliases: '-l', default: false, desc: 'Long listing'
39
39
  def instances(name)
40
- instances = elb.describe_instance_health(load_balancer_name: name).map(&:instance_states).flatten
40
+ instances = all_matching_elbs(name).map do |e|
41
+ elb.describe_instance_health(load_balancer_name: e.load_balancer_name).map(&:instance_states)
42
+ end.flatten
43
+
41
44
  if instances.empty?
42
45
  instances.tap { puts 'no instances' }
43
46
  else
data/lib/awful/iam.rb ADDED
@@ -0,0 +1,35 @@
1
+ module Awful
2
+
3
+ class IAM < Cli
4
+
5
+ no_commands do
6
+ def iam
7
+ @iam ||= Aws::IAM::Client.new
8
+ end
9
+ end
10
+
11
+ desc 'certificates [NAME]', 'list server certificates [matching NAME]'
12
+ method_option :long, aliases: '-l', default: false, desc: 'Long listing'
13
+ def certificates(name = /./)
14
+ iam.list_server_certificates.server_certificate_metadata_list.select do |cert|
15
+ cert.server_certificate_name.match(name)
16
+ end.tap do |certs|
17
+ if options[:long]
18
+ print_table certs.map { |c|
19
+ [
20
+ c.server_certificate_name,
21
+ c.server_certificate_id,
22
+ c.arn,
23
+ c.upload_date,
24
+ c.expiration,
25
+ ]
26
+ }.sort
27
+ else
28
+ puts certs.map(&:server_certificate_name).sort
29
+ end
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ end
data/lib/awful/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Awful
2
- VERSION = "0.0.57"
2
+ VERSION = "0.0.58"
3
3
  end
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.57
4
+ version: 0.0.58
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-29 00:00:00.000000000 Z
11
+ date: 2015-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,7 @@ executables:
94
94
  - ec2
95
95
  - ecs
96
96
  - elb
97
+ - iam
97
98
  - lambda
98
99
  - lc
99
100
  - r53
@@ -123,6 +124,7 @@ files:
123
124
  - bin/ec2
124
125
  - bin/ecs
125
126
  - bin/elb
127
+ - bin/iam
126
128
  - bin/lambda
127
129
  - bin/lc
128
130
  - bin/r53
@@ -144,6 +146,7 @@ files:
144
146
  - lib/awful/ec2.rb
145
147
  - lib/awful/ecs.rb
146
148
  - lib/awful/elb.rb
149
+ - lib/awful/iam.rb
147
150
  - lib/awful/lambda.rb
148
151
  - lib/awful/launch_config.rb
149
152
  - lib/awful/rds.rb