Method: Awspec::Generator::Spec::AlbListener#generate_by_vpc_id

Defined in:
lib/awspec/generator/spec/alb_listener.rb

#generate_by_vpc_id(vpc_id) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/awspec/generator/spec/alb_listener.rb', line 5

def generate_by_vpc_id(vpc_id)
  describes = %w(
    load_balancer_arn port protocol ssl_policy
  )
  vpc = find_vpc(vpc_id)
  raise 'Not Found VPC' unless vpc
  @vpc_id = vpc[:vpc_id]
  @vpc_tag_name = vpc.tag_name
  albs = select_alb_by_vpc_id(@vpc_id)

  specs = albs.map do |alb|
    alb_listeners = select_alb_listener_by_alb_arn(alb.load_balancer_arn)
    alb_listeners.map do |listener|
      rules = select_rule_by_alb_listener_id(listener.listener_arn).map(&:to_h)
      rules.map do |rule|
        content = ERB.new(alb_listener_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
      end
    end
  end
  specs.join("\n")
end