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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5e48be2a26e822e17d4779e60d44862ee12f9e3
4
- data.tar.gz: caf71507a69f540da50209b6e086ab890a3aaa7b
3
+ metadata.gz: 17fc76a0e4bd4c630600f4692868321da4e42b64
4
+ data.tar.gz: d3c84deb89204072c0708b85b944c69d230b5260
5
5
  SHA512:
6
- metadata.gz: fd0c98f368485a5bf029955f7872b912722a44ccfcc858e2b746d5a8da861be8db630acaa1390e3734f5faf75c305e9e80615543118e8dfe4231203bd8330e1c
7
- data.tar.gz: 6738b23e994badc1d08ff34cd7eb8505ef00ab21c8f6baa229eb3d4df3b3fd2913cdd4526e7207ecad72d93de3afb8519f1550b0c311129444dcfed87f323eb6
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
  ```
@@ -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
@@ -31,6 +31,10 @@ module AwsPocketknife
31
31
  @elb_client ||= AwsPocketknife.elb_client
32
32
  end
33
33
 
34
+ def elb_clientV2
35
+ @elb_clientV2 ||= AwsPocketknife.elb_clientV2
36
+ end
37
+
34
38
  def asg_client
35
39
  @asg_client ||= AwsPocketknife.asg_client
36
40
  end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module AwsPocketknife
2
- VERSION = "0.1.26"
2
+ VERSION = "0.1.27"
3
3
  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.26
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-06-20 00:00:00.000000000 Z
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