swa 0.7.7 → 0.8.0
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 +4 -4
- data/lib/swa/cli/lake_formation_command.rb +69 -0
- data/lib/swa/cli/main_command.rb +2 -0
- data/lib/swa/lake_formation/permission.rb +32 -0
- data/lib/swa/lake_formation/resource_info.rb +21 -0
- data/lib/swa/version.rb +1 -1
- data/swa.gemspec +1 -0
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36e1c1b0403a6cdb2a09bce49b2cc378f6b67f8abfbded1d6baf41d46e70504e
|
4
|
+
data.tar.gz: 91755af27947ed3028f7da36e44e1e2a53ed0555ce99a0107a557ee4767e6632
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c93335b35ff3b0e070847deee928481a77634d295dfe2e2240308fec7c8f776cfa8f6ab9658bfface70dfcb124f7b10ec55ae75c5375be98ce0161b3f8d1b1e
|
7
|
+
data.tar.gz: 1e64bf3fe18ba6398dc7d3af897a0223099b85a7112464a112a662d2caa763d35aa14c05d19de042ccdd35b36d4b78707938c720d8c5066504ca94c99fa21f57
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require "aws-sdk-lakeformation"
|
2
|
+
require "swa/cli/base_command"
|
3
|
+
require "swa/cli/collection_behaviour"
|
4
|
+
require "swa/cli/item_behaviour"
|
5
|
+
require "swa/lake_formation/resource_info"
|
6
|
+
|
7
|
+
module Swa
|
8
|
+
module CLI
|
9
|
+
|
10
|
+
class LakeFormationCommand < BaseCommand
|
11
|
+
|
12
|
+
subcommand ["permissions"], "Show permissions" do
|
13
|
+
|
14
|
+
self.description = <<-EOF
|
15
|
+
List permissions.
|
16
|
+
EOF
|
17
|
+
|
18
|
+
include CollectionBehaviour
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def collection
|
23
|
+
query_for(:list_permissions, :principal_resource_permissions, Swa::LakeFormation::Permission)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
protected
|
29
|
+
|
30
|
+
def lf_client
|
31
|
+
::Aws::LakeFormation::Client.new(aws_config)
|
32
|
+
end
|
33
|
+
|
34
|
+
def query_for(query_method, response_key, model)
|
35
|
+
records = lf_client.public_send(query_method).public_send(response_key)
|
36
|
+
model.list(records)
|
37
|
+
end
|
38
|
+
|
39
|
+
subcommand ["resources"], "Show resources" do
|
40
|
+
|
41
|
+
self.description = <<-EOF
|
42
|
+
List resources.
|
43
|
+
EOF
|
44
|
+
|
45
|
+
include CollectionBehaviour
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def collection
|
50
|
+
query_for(:list_resources, :resource_info_list, Swa::LakeFormation::ResourceInfo)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
protected
|
56
|
+
|
57
|
+
def lf_client
|
58
|
+
::Aws::LakeFormation::Client.new(aws_config)
|
59
|
+
end
|
60
|
+
|
61
|
+
def query_for(query_method, response_key, model)
|
62
|
+
records = lf_client.public_send(query_method).public_send(response_key)
|
63
|
+
model.list(records)
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
data/lib/swa/cli/main_command.rb
CHANGED
@@ -6,6 +6,7 @@ require "swa/cli/elb_command"
|
|
6
6
|
require "swa/cli/glue_command"
|
7
7
|
require "swa/cli/iam_command"
|
8
8
|
require "swa/cli/kms_command"
|
9
|
+
require "swa/cli/lake_formation_command"
|
9
10
|
require "swa/cli/s3_command"
|
10
11
|
|
11
12
|
module Swa
|
@@ -20,6 +21,7 @@ module Swa
|
|
20
21
|
subcommand "glue", "Glue stuff", GlueCommand
|
21
22
|
subcommand "iam", "IAM stuff", IamCommand
|
22
23
|
subcommand "kms", "KMS stuff", KmsCommand
|
24
|
+
subcommand ["lf", "lakeformation"], "LakeFormation stuff", LakeFormationCommand
|
23
25
|
subcommand "s3", "S3 stuff", S3Command
|
24
26
|
|
25
27
|
protected
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "swa/record"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module LakeFormation
|
5
|
+
|
6
|
+
class Permission < Record
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
principal_id,
|
11
|
+
permissions.join(","),
|
12
|
+
resource_summary
|
13
|
+
].join(" ")
|
14
|
+
end
|
15
|
+
|
16
|
+
delegate :permissions
|
17
|
+
delegate :principal
|
18
|
+
|
19
|
+
def principal_id
|
20
|
+
aws_record.principal.data_lake_principal_identifier
|
21
|
+
end
|
22
|
+
|
23
|
+
def resource_summary
|
24
|
+
h = aws_record.resource.to_hash.compact
|
25
|
+
type, details = h.first
|
26
|
+
"#{type}:#{details.values.join("/")}"
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "swa/record"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module LakeFormation
|
5
|
+
|
6
|
+
class ResourceInfo < Record
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
resource_arn,
|
11
|
+
role_arn
|
12
|
+
].join(" ")
|
13
|
+
end
|
14
|
+
|
15
|
+
delegate :resource_arn
|
16
|
+
delegate :role_arn
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
data/lib/swa/version.rb
CHANGED
data/swa.gemspec
CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_runtime_dependency "aws-sdk-glue", "~> 1"
|
31
31
|
spec.add_runtime_dependency "aws-sdk-iam", "~> 1"
|
32
32
|
spec.add_runtime_dependency "aws-sdk-kms", "~> 1"
|
33
|
+
spec.add_runtime_dependency "aws-sdk-lakeformation", "~> 1"
|
33
34
|
spec.add_runtime_dependency "aws-sdk-s3", "~> 1"
|
34
35
|
spec.add_runtime_dependency "pry"
|
35
36
|
|
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.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: aws-sdk-lakeformation
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '1'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: aws-sdk-s3
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,6 +296,7 @@ files:
|
|
282
296
|
- lib/swa/cli/iam_command.rb
|
283
297
|
- lib/swa/cli/item_behaviour.rb
|
284
298
|
- lib/swa/cli/kms_command.rb
|
299
|
+
- lib/swa/cli/lake_formation_command.rb
|
285
300
|
- lib/swa/cli/main_command.rb
|
286
301
|
- lib/swa/cli/s3_command.rb
|
287
302
|
- lib/swa/cli/selector.rb
|
@@ -315,6 +330,8 @@ files:
|
|
315
330
|
- lib/swa/iam/user.rb
|
316
331
|
- lib/swa/kms/alias.rb
|
317
332
|
- lib/swa/kms/key.rb
|
333
|
+
- lib/swa/lake_formation/permission.rb
|
334
|
+
- lib/swa/lake_formation/resource_info.rb
|
318
335
|
- lib/swa/polyfill.rb
|
319
336
|
- lib/swa/record.rb
|
320
337
|
- lib/swa/resource.rb
|
@@ -343,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
343
360
|
- !ruby/object:Gem::Version
|
344
361
|
version: '0'
|
345
362
|
requirements: []
|
346
|
-
rubygems_version: 3.
|
363
|
+
rubygems_version: 3.5.3
|
347
364
|
signing_key:
|
348
365
|
specification_version: 4
|
349
366
|
summary: AWS, backwards
|