aws_pocketknife 0.1.26 → 0.1.27

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