swa 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|