swa 0.7.0 → 0.7.2

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
  SHA256:
3
- metadata.gz: b1dfb1773a649e5d9e24e8ee24739cb6b2df451bb2cd4ffdf6a9b4336c067d87
4
- data.tar.gz: dc90877d13ad90f7df91dfcec228639de7dd1393b42f2378ee2236421e1d44a4
3
+ metadata.gz: c40d983e15b51e98b660a8ad7646b60c55ecc5dbe2aa390d64d69f6f8576b4e0
4
+ data.tar.gz: 947bccdf34d4dfd1fd5dde03cd790211a81d5eab5e1c35b688a19aaf4865a940
5
5
  SHA512:
6
- metadata.gz: 52ee4e00fd3bc9c3001d6a8168a3278f387da0a31732d9dd2bbb4a1971b9066150638ccdf757eac652ff8f6116b58d820262c030d1b018c32605b4475c59feb1
7
- data.tar.gz: ec4a90e0a5a3e973c051227c33adb9d63048d82a31ca745a9c754593d738c76d0c58f3f6fbdfe75e9beae5c9dd4aa159b38016c2c444ac6ac1453aa5b3b8721f
6
+ metadata.gz: 47ed26af61683becc4e72eced8bbcf4b3414046d0f1ebebe379a69e1097f52bd6f1ff55c714046973c46f78b49acf64b3680943d5c66fb5c240c02266e25b430
7
+ data.tar.gz: 55ced2ec8ae59f6d6305a7f697b0b38429b76c551e3e0d33354f7ea7d3461df239575078bd805357e6827cb30c5b4a2ad97a87a09f86dad7d5096035d2e9fa6d
@@ -2,6 +2,7 @@ require "aws-sdk-glue"
2
2
  require "swa/cli/base_command"
3
3
  require "swa/cli/collection_behaviour"
4
4
  require "swa/cli/item_behaviour"
5
+ require "swa/glue/crawl"
5
6
  require "swa/glue/crawler"
6
7
  require "swa/glue/database"
7
8
  require "swa/glue/job"
@@ -21,6 +22,18 @@ module Swa
21
22
 
22
23
  include ItemBehaviour
23
24
 
25
+ subcommand ["crawls"], "Show crawls" do
26
+
27
+ include CollectionBehaviour
28
+
29
+ private
30
+
31
+ def collection
32
+ query_for(:list_crawls, :crawls, Swa::Glue::Crawl, :crawler_name => name)
33
+ end
34
+
35
+ end
36
+
24
37
  private
25
38
 
26
39
  def item
@@ -137,10 +137,14 @@ module Swa
137
137
 
138
138
  private
139
139
 
140
- def item
140
+ def role
141
141
  Swa::IAM::Role.new(iam.role(File.basename(name)))
142
142
  end
143
143
 
144
+ def item
145
+ role
146
+ end
147
+
144
148
  subcommand "assume", "Assume the role" do
145
149
 
146
150
  option "--session-name", "NAME", "STS session-name",
@@ -176,6 +180,40 @@ module Swa
176
180
 
177
181
  end
178
182
 
183
+ subcommand ["policies"], "Show role policies." do
184
+
185
+ include CollectionBehaviour
186
+
187
+ private
188
+
189
+ def collection
190
+ role.policies
191
+ end
192
+
193
+ end
194
+
195
+ subcommand ["policy"], "Show named role policy" do
196
+
197
+ parameter "NAME", "policy name", attribute_name: :policy_name
198
+
199
+ include ItemBehaviour
200
+
201
+ subcommand "document", "print policy document" do
202
+
203
+ def execute
204
+ puts item.document
205
+ end
206
+
207
+ end
208
+
209
+ private
210
+
211
+ def item
212
+ role.policy(policy_name)
213
+ end
214
+
215
+ end
216
+
179
217
  end
180
218
 
181
219
  subcommand ["roles"], "Show roles" do
@@ -0,0 +1,25 @@
1
+ require "swa/record"
2
+
3
+ module Swa
4
+ module Glue
5
+
6
+ class Crawl < Record
7
+
8
+ def summary
9
+ [
10
+ crawl_id,
11
+ pad(state, 9),
12
+ start_time.iso8601,
13
+ end_time.iso8601
14
+ ].join(" ")
15
+ end
16
+
17
+ delegate :crawl_id
18
+ delegate :state
19
+ delegate :start_time
20
+ delegate :end_time
21
+
22
+ end
23
+
24
+ end
25
+ end
@@ -19,7 +19,7 @@ module Swa
19
19
  delegate :role
20
20
 
21
21
  def last_crawl_status
22
- aws_record.last_crawl.status
22
+ aws_record.last_crawl&.status || "NEW"
23
23
  end
24
24
 
25
25
  end
data/lib/swa/iam/role.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "swa/resource"
2
2
  require "swa/iam/credentials"
3
+ require "swa/iam/role_policy"
3
4
 
4
5
  module Swa
5
6
  module IAM
@@ -18,6 +19,14 @@ module Swa
18
19
  role.name
19
20
  end
20
21
 
22
+ def policies
23
+ RolePolicy.list(role.policies)
24
+ end
25
+
26
+ def policy(name)
27
+ RolePolicy.new(role.policy(name))
28
+ end
29
+
21
30
  private
22
31
 
23
32
  alias_method :role, :aws_resource
@@ -0,0 +1,28 @@
1
+ require "cgi"
2
+ require "swa/resource"
3
+
4
+ module Swa
5
+ module IAM
6
+
7
+ class RolePolicy < Resource
8
+
9
+ def name
10
+ role_policy.name
11
+ end
12
+
13
+ def summary
14
+ name
15
+ end
16
+
17
+ def document
18
+ CGI.unescape(role_policy.policy_document)
19
+ end
20
+
21
+ private
22
+
23
+ alias_method :role_policy, :aws_resource
24
+
25
+ end
26
+
27
+ end
28
+ end
data/lib/swa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Swa
2
- VERSION = "0.7.0"
2
+ VERSION = "0.7.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Williams
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-23 00:00:00.000000000 Z
11
+ date: 2023-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -279,6 +279,7 @@ files:
279
279
  - lib/swa/ec2/volume.rb
280
280
  - lib/swa/ec2/vpc.rb
281
281
  - lib/swa/elb/load_balancer.rb
282
+ - lib/swa/glue/crawl.rb
282
283
  - lib/swa/glue/crawler.rb
283
284
  - lib/swa/glue/database.rb
284
285
  - lib/swa/glue/job.rb
@@ -291,6 +292,7 @@ files:
291
292
  - lib/swa/iam/instance_profile.rb
292
293
  - lib/swa/iam/policy.rb
293
294
  - lib/swa/iam/role.rb
295
+ - lib/swa/iam/role_policy.rb
294
296
  - lib/swa/iam/user.rb
295
297
  - lib/swa/kms/alias.rb
296
298
  - lib/swa/kms/key.rb