aws_pocketknife 0.1.26 → 0.1.27
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/README.md +11 -0
- data/lib/aws_pocketknife.rb +4 -0
- data/lib/aws_pocketknife/cli/elb.rb +40 -1
- data/lib/aws_pocketknife/common/utils.rb +4 -0
- data/lib/aws_pocketknife/elb.rb +52 -0
- data/lib/aws_pocketknife/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17fc76a0e4bd4c630600f4692868321da4e42b64
|
4
|
+
data.tar.gz: d3c84deb89204072c0708b85b944c69d230b5260
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6c56bf99ca691c862ca6484adff79a86c61670697267fccc7da277527b63971ce43bef0857c95214a88f2f7fe0849c6dd6fb6963a34e9c5e7b9c063fa1cb649
|
7
|
+
data.tar.gz: bd96e43d1883c915435b7ebe81bdea5ff37e663bf0c4e421edcdd4f5bf242a3a94a713b552a5c3f4a5502554ef9e870c9325e8bc90c944d08ec4cc1dd191e1d0
|
data/README.md
CHANGED
@@ -112,6 +112,17 @@ Commands:
|
|
112
112
|
pocketknife route53 update_record HOSTED_ZONE ORIGIN_DNS_NAME DESTINY_RECORD_NAME DESTINY_HOSTED_ZONE RECORD_TYPE (default to A) # Update a dns record from an existing dns entry.
|
113
113
|
```
|
114
114
|
|
115
|
+
### ELB
|
116
|
+
|
117
|
+
```
|
118
|
+
$ pocketknife elb
|
119
|
+
Commands:
|
120
|
+
pocketknife elb desc ELB_NAME # describe elastic load balancer
|
121
|
+
pocketknife elb help [COMMAND] # Describe subcommands or one specific subcommand
|
122
|
+
pocketknife elb list # list elastic load balancer
|
123
|
+
pocketknife elb list_v2 # list load balancers using v2 api (application and network loadbalancers)
|
124
|
+
```
|
125
|
+
|
115
126
|
### ECS
|
116
127
|
|
117
128
|
```
|
data/lib/aws_pocketknife.rb
CHANGED
@@ -50,6 +50,10 @@ module AwsPocketknife
|
|
50
50
|
@elb_client ||= Aws::ElasticLoadBalancing::Client.new(get_client_options)
|
51
51
|
end
|
52
52
|
|
53
|
+
def elb_clientV2
|
54
|
+
@elb_clientV2 ||= Aws::ElasticLoadBalancingV2::Client.new(get_client_options)
|
55
|
+
end
|
56
|
+
|
53
57
|
def asg_client
|
54
58
|
@asg_client ||= Aws::AutoScaling::Client.new(get_client_options)
|
55
59
|
end
|
@@ -5,7 +5,7 @@ module AwsPocketknife
|
|
5
5
|
module Cli
|
6
6
|
class Elb < Thor
|
7
7
|
|
8
|
-
desc "desc ELB_NAME", "describe elastic load balancer"
|
8
|
+
desc "desc ELB_NAME", "describe classic elastic load balancer"
|
9
9
|
def desc(elb_name)
|
10
10
|
elb = AwsPocketknife::Elb.describe_elb_by_name(name: elb_name)
|
11
11
|
if elb.nil?
|
@@ -15,6 +15,45 @@ module AwsPocketknife
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
desc "list", "list elastic load balancer"
|
19
|
+
def list()
|
20
|
+
elbs = AwsPocketknife::Elb.list
|
21
|
+
print_elbs(elbs: elbs)
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "list_v2", "list load balancers using v2 api (application and network loadbalancers)"
|
25
|
+
def list_v2()
|
26
|
+
elbs = AwsPocketknife::Elb.list_v2
|
27
|
+
print_elbs_v2(elbs: elbs)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def print_elbs(elbs: [])
|
33
|
+
headers = ["name", "vpc_id", "security_groups", "scheme"]
|
34
|
+
data = []
|
35
|
+
if elbs.length > 0
|
36
|
+
elbs.each do |elb|
|
37
|
+
data << [elb.load_balancer_name, elb.vpc_id, elb.security_groups.join(", "), elb.scheme]
|
38
|
+
end
|
39
|
+
AwsPocketknife::Elb.pretty_table(headers: headers, data: data)
|
40
|
+
else
|
41
|
+
puts "No elb(s) found for name #{args[:name]}"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def print_elbs_v2(elbs: [])
|
46
|
+
headers = ["name", "vpc_id", "security_groups", "scheme", "type"]
|
47
|
+
data = []
|
48
|
+
if elbs.length > 0
|
49
|
+
elbs.each do |elb|
|
50
|
+
data << [elb.load_balancer_name, elb.vpc_id, elb.security_groups.join(", "), elb.scheme, elb.type]
|
51
|
+
end
|
52
|
+
AwsPocketknife::Elb.pretty_table(headers: headers, data: data)
|
53
|
+
else
|
54
|
+
puts "No elb(s) found for name #{args[:name]}"
|
55
|
+
end
|
56
|
+
end
|
18
57
|
end
|
19
58
|
end
|
20
59
|
end
|
data/lib/aws_pocketknife/elb.rb
CHANGED
@@ -19,6 +19,58 @@ module AwsPocketknife
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
def list(max_records: 100)
|
23
|
+
elbs = []
|
24
|
+
resp = elb_client.describe_load_balancers({
|
25
|
+
page_size: max_records,
|
26
|
+
})
|
27
|
+
|
28
|
+
elbs << resp.load_balancer_descriptions
|
29
|
+
next_marker = resp.next_marker
|
30
|
+
while true
|
31
|
+
break if next_marker.nil? or next_marker.empty?
|
32
|
+
resp = get_elbs(next_marker: next_marker, max_records: max_records)
|
33
|
+
elbs << resp.load_balancer_descriptions
|
34
|
+
next_marker = resp.next_marker
|
35
|
+
end
|
36
|
+
|
37
|
+
elbs.flatten!
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
def list_v2(max_records: 100)
|
42
|
+
elbs = []
|
43
|
+
resp = elb_clientV2.describe_load_balancers({
|
44
|
+
page_size: max_records,
|
45
|
+
})
|
46
|
+
|
47
|
+
elbs << resp.load_balancers
|
48
|
+
next_marker = resp.next_marker
|
49
|
+
while true
|
50
|
+
break if next_marker.nil? or next_marker.empty?
|
51
|
+
resp = get_elbs(next_marker: next_marker, max_records: max_records)
|
52
|
+
elbs << resp.load_balancers
|
53
|
+
next_marker = resp.next_marker
|
54
|
+
end
|
55
|
+
|
56
|
+
elbs.flatten!
|
57
|
+
|
58
|
+
end
|
59
|
+
private
|
60
|
+
|
61
|
+
def get_elbs(next_marker: "", max_records: 100)
|
62
|
+
elb_client.describe_load_balancers({
|
63
|
+
page_size: max_records,
|
64
|
+
marker: next_marker,
|
65
|
+
})
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_elbs_v2(next_marker: "", max_records: 100)
|
69
|
+
elb_clientV2.describe_load_balancers({
|
70
|
+
page_size: max_records,
|
71
|
+
marker: next_marker,
|
72
|
+
})
|
73
|
+
end
|
22
74
|
end
|
23
75
|
|
24
76
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws_pocketknife
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gustavo Soares Souza
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|