swa 0.7.0 → 0.7.2

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