awful 0.0.57 → 0.0.58

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