awful 0.0.142 → 0.0.143

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: bbb2a2c6eeaf50228815c6c922823d437d78d0dd
4
- data.tar.gz: d847f35ad7ddae5100424861fc21c4f250866dcf
3
+ metadata.gz: 3ba6f0063f4762f6292093fe718b9bef4100bd3a
4
+ data.tar.gz: 6002d077ed8c6384d3c011e42601978cd8aedf74
5
5
  SHA512:
6
- metadata.gz: 9b875ab0fb98dcfc83bd152bae983940242bf1f3b1411fed25fb0e1e7c2adce4bddc605a8111d1e73b654f8056c62ff0ab107665af9c26d5850e65aed4517343
7
- data.tar.gz: e019bd2948dffa74237f0b9f9dfda0642b22cea7a9381cfbad7abbff660bb1b25dfa35fcd26e73ac265e451923dd4b6c674ea9e195194699ed8b3bca3b3080b8
6
+ metadata.gz: 1eeb247f0f441de347dd14492ece3ef7aca2b2a17f843011c4162a4a8893da27c9936f8661f373f49cff9abee328f14700b802da6a5b1523ef405988babe2d7c
7
+ data.tar.gz: 8a598fd6e657197cda38f7cfc86344896699eb7a1aefa7c5544baf10dd4f7420f134f106ca5dd2b9cebbf54305045cbb7a4d0190f2b67f19409422a0c8e725cc
data/bin/certs ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby
2
+ #-*- mode: ruby; -*-
3
+
4
+ require 'awful'
5
+ require 'awful/certs'
6
+
7
+ Awful::Certs.start(ARGV)
@@ -0,0 +1,92 @@
1
+ module Awful
2
+ module Short
3
+ def certs(*args)
4
+ Awful::Certs.new.invoke(*args)
5
+ end
6
+ end
7
+
8
+ class Certs < Cli
9
+ no_commands do
10
+ def iam
11
+ @iam ||= Aws::IAM::Client.new
12
+ end
13
+ end
14
+
15
+ desc 'ls [PATH_PREFIX]', 'list server certificates'
16
+ method_option :long, aliases: '-l', default: false, desc: 'long listing'
17
+ method_option :arns, aliases: '-a', default: false, desc: 'list ARNs'
18
+ def ls(path = nil)
19
+ marker = nil
20
+ certs = []
21
+ loop do
22
+ response = iam.list_server_certificates(path_prefix: path, marker: marker)
23
+ certs += response.server_certificate_metadata_list
24
+ marker = response.marker
25
+ break unless response.is_truncated
26
+ end
27
+ certs.output do |list|
28
+ if options[:long]
29
+ print_table list.map { |c|
30
+ [
31
+ c.server_certificate_name,
32
+ c.path,
33
+ c.server_certificate_id,
34
+ c.upload_date,
35
+ c.expiration,
36
+ ]
37
+ }.sort
38
+ elsif options[:arns]
39
+ puts certs.map(&:arn)
40
+ else
41
+ puts certs.map(&:server_certificate_name).sort
42
+ end
43
+ end
44
+ end
45
+
46
+ no_commands do
47
+ def read_file(name)
48
+ name.nil? ? nil : File.read(name)
49
+ end
50
+ end
51
+
52
+ desc 'upload NAME', 'upload server certificate'
53
+ method_option :path, aliases: '-p', type: :string, default: nil, desc: 'path, e.g. /cloudfront/ for cf certs'
54
+ method_option :body, aliases: '-b', type: :string, default: nil, desc: 'file containing body of certificate'
55
+ method_option :key, aliases: '-k', type: :string, default: nil, desc: 'file containing private key'
56
+ method_option :chain, aliases: '-c', type: :string, default: nil, desc: 'file containing cert chain'
57
+ def upload(name)
58
+ iam.upload_server_certificate(
59
+ server_certificate_name: name,
60
+ path: options[:path],
61
+ certificate_body: read_file(options[:body]),
62
+ private_key: read_file(options[:key]),
63
+ certificate_chain: read_file(options[:chain]),
64
+ ).output do |cert|
65
+ puts cert.server_certificate_metadata.arn
66
+ end
67
+ end
68
+
69
+ desc 'dump NAME', 'get details for server certificate'
70
+ method_option :body, aliases: '-b', type: :string, default: nil, desc: 'output contains cert body'
71
+ method_option :chain, aliases: '-c', type: :string, default: nil, desc: 'output contains cert chain'
72
+ def dump(name)
73
+ iam.get_server_certificate(server_certificate_name: name).server_certificate.output do |cert|
74
+ if options[:body]
75
+ puts cert.certificate_body
76
+ elsif options[:chain]
77
+ puts cert.certificate_chain
78
+ else
79
+ puts YAML.dump(stringify_keys(cert.server_certificate_metadata.to_h))
80
+ end
81
+ end
82
+ end
83
+
84
+ desc 'delete NAME', 'delete server certificate'
85
+ def delete(name)
86
+ if yes? "Really delete server certificate #{name}?", :yellow
87
+ iam.delete_server_certificate(server_certificate_name: name)
88
+ end
89
+ end
90
+ end
91
+
92
+ end
data/lib/awful/iam.rb CHANGED
@@ -43,28 +43,6 @@ module Awful
43
43
  end
44
44
  end
45
45
 
46
- desc 'certificates [NAME]', 'list server certificates [matching NAME]'
47
- method_option :long, aliases: '-l', default: false, desc: 'Long listing'
48
- def certificates(name = /./)
49
- iam.list_server_certificates.server_certificate_metadata_list.select do |cert|
50
- cert.server_certificate_name.match(name)
51
- end.output do |certs|
52
- if options[:long]
53
- print_table certs.map { |c|
54
- [
55
- c.server_certificate_name,
56
- c.server_certificate_id,
57
- c.arn,
58
- c.upload_date,
59
- c.expiration,
60
- ]
61
- }.sort
62
- else
63
- puts certs.map(&:server_certificate_name).sort
64
- end
65
- end
66
- end
67
-
68
46
  desc 'roles [NAME]', 'list IAM roles [matching NAME]'
69
47
  method_option :long, aliases: '-l', default: false, desc: 'Long listing'
70
48
  method_option :arns, aliases: '-a', default: false, desc: 'Show ARNs instead of names'
data/lib/awful/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Awful
2
- VERSION = '0.0.142'
2
+ VERSION = '0.0.143'
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.142
4
+ version: 0.0.143
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ric Lister
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-12 00:00:00.000000000 Z
11
+ date: 2016-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -89,6 +89,7 @@ executables:
89
89
  - apigw
90
90
  - asg
91
91
  - asgn
92
+ - certs
92
93
  - cf
93
94
  - cloudfront
94
95
  - cwevents
@@ -128,6 +129,7 @@ files:
128
129
  - bin/apigw
129
130
  - bin/asg
130
131
  - bin/asgn
132
+ - bin/certs
131
133
  - bin/cf
132
134
  - bin/cloudfront
133
135
  - bin/cwevents
@@ -163,6 +165,7 @@ files:
163
165
  - lib/awful/api_gateway_stages.rb
164
166
  - lib/awful/auto_scaling.rb
165
167
  - lib/awful/auto_scaling_notifications.rb
168
+ - lib/awful/certs.rb
166
169
  - lib/awful/changesets.rb
167
170
  - lib/awful/cloudformation.rb
168
171
  - lib/awful/cloudfront.rb