Module: Awspec::Helper::Finder::Alb

Included in:
Awspec::Helper::Finder
Defined in:
lib/awspec/helper/finder/alb.rb

Instance Method Summary collapse

Instance Method Details

#find_alb(id) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/awspec/helper/finder/alb.rb', line 6

def find_alb(id)
  res = elbv2_client.describe_load_balancers({ names: [id] })
  res.load_balancers.select do |lb|
    lb.type == 'application'
  end.single_resource(id)
rescue Aws::ElasticLoadBalancingV2::Errors::LoadBalancerNotFound
  nil
end

#find_alb_listener(arn) ⇒ Object



22
23
24
25
26
27
# File 'lib/awspec/helper/finder/alb.rb', line 22

def find_alb_listener(arn)
  res = elbv2_client.describe_listeners({ listener_arns: [arn] })
  res.listeners.single_resource(arn)
rescue StandardError
  nil
end

#find_alb_target_group(id) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/awspec/helper/finder/alb.rb', line 40

def find_alb_target_group(id)
  res = elbv2_client.describe_target_groups({ names: [id] })
  res.target_groups.select do |tg|
    %w[HTTP HTTPS].include?(tg.protocol)
  end.single_resource(id)
rescue StandardError
  nil
end

#select_alb_by_vpc_id(vpc_id) ⇒ Object



15
16
17
18
19
20
# File 'lib/awspec/helper/finder/alb.rb', line 15

def select_alb_by_vpc_id(vpc_id)
  res = elbv2_client.describe_load_balancers
  res.load_balancers.select do |lb|
    lb.vpc_id == vpc_id && lb.type == 'application'
  end
end

#select_alb_listener_by_alb_arn(arn) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/awspec/helper/finder/alb.rb', line 29

def select_alb_listener_by_alb_arn(arn)
  selected = []
  next_marker = nil
  loop do
    res = elbv2_client.describe_listeners({ marker: next_marker, load_balancer_arn: arn })
    selected += res.listeners unless res.nil?
    (res.nil? && next_marker = res.next_marker) || break
  end
  selected
end

#select_all_alb_tags(id) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/awspec/helper/finder/alb.rb', line 60

def select_all_alb_tags(id)
  res = elbv2_client.describe_tags({ resource_arns: [id] })
  res.tag_descriptions.select do |resource|
    resource.resource_arn == id
  end.first.tags
rescue StandardError
  nil
end

#select_rule_by_alb_listener_id(id) ⇒ Object



49
50
51
52
53
54
55
56
57
58
# File 'lib/awspec/helper/finder/alb.rb', line 49

def select_rule_by_alb_listener_id(id)
  selected = []
  next_marker = nil
  loop do
    res = elbv2_client.describe_rules(marker: next_marker, listener_arn: id)
    selected += res.rules unless res.nil?
    (res.nil? && next_marker = res.next_marker) || break
  end
  selected
end