swa 0.6.0 → 0.7.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 +5 -5
- data/README.md +11 -0
- data/lib/swa/cli/cloud_formation_command.rb +1 -1
- data/lib/swa/cli/collection_behaviour.rb +8 -0
- data/lib/swa/cli/ec2_command.rb +50 -1
- data/lib/swa/cli/elb_command.rb +53 -0
- data/lib/swa/cli/glue_command.rb +192 -0
- data/lib/swa/cli/iam_command.rb +92 -4
- data/lib/swa/cli/kms_command.rb +1 -1
- data/lib/swa/cli/main_command.rb +4 -0
- data/lib/swa/cli/s3_command.rb +70 -1
- data/lib/swa/cli/selector.rb +4 -0
- data/lib/swa/cloud_formation/stack.rb +4 -0
- data/lib/swa/ec2/image.rb +4 -0
- data/lib/swa/ec2/instance.rb +10 -1
- data/lib/swa/ec2/key_pair.rb +4 -0
- data/lib/swa/ec2/security_group.rb +6 -0
- data/lib/swa/ec2/snapshot.rb +13 -4
- data/lib/swa/ec2/subnet.rb +4 -0
- data/lib/swa/ec2/volume.rb +4 -0
- data/lib/swa/ec2/vpc.rb +4 -0
- data/lib/swa/elb/load_balancer.rb +24 -0
- data/lib/swa/glue/crawler.rb +28 -0
- data/lib/swa/glue/database.rb +17 -0
- data/lib/swa/glue/job.rb +21 -0
- data/lib/swa/glue/job_bookmark_entry.rb +17 -0
- data/lib/swa/glue/job_run.rb +26 -0
- data/lib/swa/glue/partition.rb +26 -0
- data/lib/swa/glue/table.rb +17 -0
- data/lib/swa/iam/credentials.rb +31 -0
- data/lib/swa/iam/group.rb +11 -1
- data/lib/swa/iam/instance_profile.rb +26 -0
- data/lib/swa/iam/policy.rb +4 -0
- data/lib/swa/iam/role.rb +9 -0
- data/lib/swa/iam/user.rb +4 -0
- data/lib/swa/kms/alias.rb +4 -0
- data/lib/swa/record.rb +6 -0
- data/lib/swa/s3/bucket.rb +13 -1
- data/lib/swa/s3/object.rb +5 -0
- data/lib/swa/s3/object_version.rb +48 -0
- data/lib/swa/version.rb +1 -1
- data/swa.gemspec +12 -3
- metadata +139 -15
data/lib/swa/ec2/instance.rb
CHANGED
@@ -9,6 +9,10 @@ module Swa
|
|
9
9
|
|
10
10
|
include TaggedResource
|
11
11
|
|
12
|
+
def id
|
13
|
+
i.instance_id
|
14
|
+
end
|
15
|
+
|
12
16
|
def summary
|
13
17
|
[
|
14
18
|
field(i, :instance_id),
|
@@ -17,7 +21,8 @@ module Swa
|
|
17
21
|
pad(i.state.name, 10),
|
18
22
|
field(i, :private_ip_address),
|
19
23
|
field(i, :public_ip_address),
|
20
|
-
quoted(name)
|
24
|
+
quoted(name),
|
25
|
+
decorated_key_name
|
21
26
|
].join(" ")
|
22
27
|
end
|
23
28
|
|
@@ -37,6 +42,10 @@ module Swa
|
|
37
42
|
|
38
43
|
alias_method :i, :aws_resource
|
39
44
|
|
45
|
+
def decorated_key_name
|
46
|
+
"🔑 #{i.key_name}" if i.key_name
|
47
|
+
end
|
48
|
+
|
40
49
|
end
|
41
50
|
|
42
51
|
end
|
data/lib/swa/ec2/key_pair.rb
CHANGED
@@ -6,6 +6,10 @@ module Swa
|
|
6
6
|
|
7
7
|
class SecurityGroup < Resource
|
8
8
|
|
9
|
+
def id
|
10
|
+
sg.group_id
|
11
|
+
end
|
12
|
+
|
9
13
|
def summary
|
10
14
|
[
|
11
15
|
field(sg, :group_id),
|
@@ -18,6 +22,8 @@ module Swa
|
|
18
22
|
aws_resource.name
|
19
23
|
end
|
20
24
|
|
25
|
+
delegate :delete
|
26
|
+
|
21
27
|
private
|
22
28
|
|
23
29
|
alias_method :sg, :aws_resource
|
data/lib/swa/ec2/snapshot.rb
CHANGED
@@ -8,17 +8,26 @@ module Swa
|
|
8
8
|
|
9
9
|
include TaggedResource
|
10
10
|
|
11
|
+
def id
|
12
|
+
s.snapshot_id
|
13
|
+
end
|
14
|
+
|
11
15
|
def summary
|
12
16
|
[
|
13
17
|
field(s, :snapshot_id),
|
14
18
|
field(s, :volume_id),
|
15
|
-
sprintf("%5d",
|
16
|
-
|
17
|
-
rpad(
|
18
|
-
quoted(
|
19
|
+
sprintf("%5d", volume_size),
|
20
|
+
start_time.iso8601,
|
21
|
+
rpad(progress, 4),
|
22
|
+
quoted(description)
|
19
23
|
].join(" ")
|
20
24
|
end
|
21
25
|
|
26
|
+
delegate :description
|
27
|
+
delegate :progress
|
28
|
+
delegate :start_time
|
29
|
+
delegate :volume_size
|
30
|
+
|
22
31
|
delegate :delete
|
23
32
|
|
24
33
|
private
|
data/lib/swa/ec2/subnet.rb
CHANGED
data/lib/swa/ec2/volume.rb
CHANGED
data/lib/swa/ec2/vpc.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
require "swa/record"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module ELB
|
5
|
+
|
6
|
+
class LoadBalancer < Record
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
pad(name, 36),
|
11
|
+
scheme
|
12
|
+
].join(" ")
|
13
|
+
end
|
14
|
+
|
15
|
+
def name
|
16
|
+
aws_record.load_balancer_name
|
17
|
+
end
|
18
|
+
|
19
|
+
delegate :scheme
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "swa/record"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module Glue
|
5
|
+
|
6
|
+
class Crawler < Record
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
pad(name, 48),
|
11
|
+
pad(state, 10),
|
12
|
+
pad(last_crawl_status, 12),
|
13
|
+
role
|
14
|
+
].join(" ")
|
15
|
+
end
|
16
|
+
|
17
|
+
delegate :name
|
18
|
+
delegate :state
|
19
|
+
delegate :role
|
20
|
+
|
21
|
+
def last_crawl_status
|
22
|
+
aws_record.last_crawl.status
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/lib/swa/glue/job.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require "swa/record"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module Glue
|
5
|
+
|
6
|
+
class JobRun < Record
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
pad(id, 68),
|
11
|
+
pad(job_run_state, 8),
|
12
|
+
pad(started_on, 28)
|
13
|
+
].join(" ")
|
14
|
+
end
|
15
|
+
|
16
|
+
delegate :id
|
17
|
+
delegate :job_run_state
|
18
|
+
|
19
|
+
def started_on
|
20
|
+
aws_record.started_on.iso8601
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "swa/record"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module Glue
|
5
|
+
|
6
|
+
class Partition < Record
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
creation_time,
|
11
|
+
location
|
12
|
+
].join(" ")
|
13
|
+
end
|
14
|
+
|
15
|
+
def location
|
16
|
+
aws_record.storage_descriptor.location
|
17
|
+
end
|
18
|
+
|
19
|
+
def creation_time
|
20
|
+
aws_record.creation_time.iso8601
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Swa
|
2
|
+
module IAM
|
3
|
+
|
4
|
+
class Credentials
|
5
|
+
|
6
|
+
def initialize(attributes = {})
|
7
|
+
attributes.to_h.each do |k,v|
|
8
|
+
send("#{k}=", v)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
attr_accessor :access_key_id
|
13
|
+
attr_accessor :secret_access_key
|
14
|
+
attr_accessor :session_token
|
15
|
+
|
16
|
+
attr_accessor :expires_at
|
17
|
+
alias :expiration= :expires_at=
|
18
|
+
|
19
|
+
def to_env
|
20
|
+
{
|
21
|
+
"AWS_ACCESS_KEY_ID" => access_key_id,
|
22
|
+
"AWS_SECRET_ACCESS_KEY" => secret_access_key,
|
23
|
+
"AWS_SESSION_TOKEN" => session_token,
|
24
|
+
"AWS_SESSION_EXPIRES" => expires_at.iso8601
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
data/lib/swa/iam/group.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require "swa/resource"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module IAM
|
5
|
+
|
6
|
+
class InstanceProfile < Resource
|
7
|
+
|
8
|
+
def id
|
9
|
+
profile.instance_profile_id
|
10
|
+
end
|
11
|
+
|
12
|
+
def summary
|
13
|
+
arn
|
14
|
+
end
|
15
|
+
|
16
|
+
delegate :name
|
17
|
+
delegate :arn
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
alias_method :profile, :aws_resource
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/lib/swa/iam/policy.rb
CHANGED
data/lib/swa/iam/role.rb
CHANGED
data/lib/swa/iam/user.rb
CHANGED
data/lib/swa/kms/alias.rb
CHANGED
data/lib/swa/record.rb
CHANGED
data/lib/swa/s3/bucket.rb
CHANGED
@@ -1,15 +1,23 @@
|
|
1
1
|
require "multi_json"
|
2
2
|
require "swa/resource"
|
3
|
+
require "swa/s3/object"
|
4
|
+
require "swa/s3/object_version"
|
3
5
|
|
4
6
|
module Swa
|
5
7
|
module S3
|
6
8
|
|
7
9
|
class Bucket < Resource
|
8
10
|
|
11
|
+
def id
|
12
|
+
name
|
13
|
+
end
|
14
|
+
|
9
15
|
def summary
|
10
|
-
|
16
|
+
name
|
11
17
|
end
|
12
18
|
|
19
|
+
delegate :name
|
20
|
+
|
13
21
|
def uri
|
14
22
|
"s3://#{bucket.name}"
|
15
23
|
end
|
@@ -26,6 +34,10 @@ module Swa
|
|
26
34
|
Swa::S3::Object.list(aws_resource.objects(options))
|
27
35
|
end
|
28
36
|
|
37
|
+
def object_versions(options = {})
|
38
|
+
Swa::S3::ObjectVersion.list(aws_resource.object_versions(options))
|
39
|
+
end
|
40
|
+
|
29
41
|
def delete
|
30
42
|
bucket.delete
|
31
43
|
end
|
data/lib/swa/s3/object.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "swa/resource"
|
2
|
+
require "swa/s3/object_version"
|
2
3
|
|
3
4
|
module Swa
|
4
5
|
module S3
|
@@ -41,6 +42,10 @@ module Swa
|
|
41
42
|
object.delete
|
42
43
|
end
|
43
44
|
|
45
|
+
def version(version_id)
|
46
|
+
Swa::S3::ObjectVersion.new(object.version(version_id))
|
47
|
+
end
|
48
|
+
|
44
49
|
private
|
45
50
|
|
46
51
|
alias_method :object, :aws_resource
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "swa/resource"
|
2
|
+
|
3
|
+
module Swa
|
4
|
+
module S3
|
5
|
+
|
6
|
+
class ObjectVersion < Resource
|
7
|
+
|
8
|
+
def summary
|
9
|
+
[
|
10
|
+
version.last_modified.iso8601,
|
11
|
+
rpad(version.size, 10),
|
12
|
+
pad(version.id, 32),
|
13
|
+
uri
|
14
|
+
].join(" ")
|
15
|
+
end
|
16
|
+
|
17
|
+
def key
|
18
|
+
version.key
|
19
|
+
end
|
20
|
+
|
21
|
+
def id
|
22
|
+
version.id
|
23
|
+
end
|
24
|
+
|
25
|
+
def uri
|
26
|
+
"s3://#{version.bucket_name}/#{version.key}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_s
|
30
|
+
uri
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_body
|
34
|
+
version.get.body
|
35
|
+
end
|
36
|
+
|
37
|
+
def delete
|
38
|
+
version.delete
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
alias_method :version, :aws_resource
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
data/lib/swa/version.rb
CHANGED
data/swa.gemspec
CHANGED
@@ -20,14 +20,23 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler", "~> 1
|
24
|
-
spec.add_development_dependency "rake", "~>
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
24
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
25
|
+
|
26
|
+
spec.add_runtime_dependency "aws-sdk-cloudformation", "~> 1"
|
27
|
+
spec.add_runtime_dependency "aws-sdk-ec2", "~> 1"
|
28
|
+
spec.add_runtime_dependency "aws-sdk-elasticloadbalancing", "~> 1"
|
29
|
+
spec.add_runtime_dependency "aws-sdk-glue", "~> 1"
|
30
|
+
spec.add_runtime_dependency "aws-sdk-iam", "~> 1"
|
31
|
+
spec.add_runtime_dependency "aws-sdk-kms", "~> 1"
|
32
|
+
spec.add_runtime_dependency "aws-sdk-s3", "~> 1"
|
33
|
+
spec.add_runtime_dependency "pry"
|
25
34
|
|
26
|
-
spec.add_runtime_dependency "aws-sdk-resources", ">= 2.6.14"
|
27
35
|
spec.add_runtime_dependency "chronic"
|
28
36
|
spec.add_runtime_dependency "clamp", ">= 1.1.0"
|
29
37
|
spec.add_runtime_dependency "console_logger"
|
30
38
|
spec.add_runtime_dependency "multi_json"
|
39
|
+
spec.add_runtime_dependency "ox"
|
31
40
|
spec.add_runtime_dependency "stackup", ">= 1.0.0"
|
32
41
|
|
33
42
|
end
|