class AwsInventory::Elb

Public Instance Methods

application_load_balancers() click to toggle source
# File lib/aws_inventory/elb.rb, line 58
def application_load_balancers
  @application_load_balancers ||= elbv2.describe_load_balancers.load_balancers
end
classic_load_balancers() click to toggle source
# File lib/aws_inventory/elb.rb, line 38
def classic_load_balancers
  @classic_load_balancers ||= elbv1.describe_load_balancers.load_balancer_descriptions
end
data() click to toggle source
# File lib/aws_inventory/elb.rb, line 6
def data
  data = []
  elbs.each do |lb|
    # lb.security_groups is actualy a list of group_ids
    lb.security_groups.each do |group_id|
      security_group_name = security_group_name(group_id) # weird: sometimes sg doesnt exist
      open_ports = open_ports(group_id)

      data << [
        lb.load_balancer_name,
        lb_type(lb),
        security_group_name,
        open_ports]
    end
  end

  data
end
elbs() click to toggle source
# File lib/aws_inventory/elb.rb, line 29
def elbs
  application_load_balancers + classic_load_balancers
end
header() click to toggle source
# File lib/aws_inventory/elb.rb, line 2
def header
  ["ELB", "Type", "Security Group", "Open Ports"]
end
lb_type(lb) click to toggle source
# File lib/aws_inventory/elb.rb, line 25
def lb_type(lb)
  lb.respond_to?(:type) ? lb.type : 'classic'
end
open_ports(group_id) click to toggle source

Returns an Array of ports with a cidr of 0.0.0.0/0 Delegates to AwsInventory::SecurityGroup

# File lib/aws_inventory/elb.rb, line 64
def open_ports(group_id)
  sg = security_groups.find { |sg| sg.group_id == group_id }
  return unless sg

  aws_inventory = AwsInventory::SecurityGroup::Open.new(@options)
  aws_inventory.ports_open_to_world(sg)
end
security_group_name(group_id) click to toggle source

Somehow sometimes there can be an ELB with a security group that does not actually exist. In the AWS Console it says:

"There was an error loading the Security Groups."
# File lib/aws_inventory/elb.rb, line 52
def security_group_name(group_id)
  security_group = security_groups.find { |sg| sg.group_id == group_id }
  group_name = security_group ? security_group.group_name : "not found"
  "#{group_id} (#{group_name})"
end
security_group_names(lb) click to toggle source
# File lib/aws_inventory/elb.rb, line 42
def security_group_names(lb)
  # lb.security_groups is actualy a list of group_ids
  lb.security_groups.map do |group_id|
    security_group_name(group_id)
  end.join(', ')
end
sort(data) click to toggle source

override custom sort

# File lib/aws_inventory/elb.rb, line 34
def sort(data)
  data
end