Sha256: 7a87e0418824e35d1f2346fe05b0b6d89b6d98dfe6c4769e3c4a38fd507b0d3f
Contents?: true
Size: 1.9 KB
Versions: 4
Compression:
Stored size: 1.9 KB
Contents
class AwsInventory::Elb < AwsInventory::Base def header ["ELB", "Type", "Security Group", "Open Ports"] end 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 def lb_type(lb) lb.respond_to?(:type) ? lb.type : 'classic' end def elbs application_load_balancers + classic_load_balancers end # override custom sort def sort(data) data end def classic_load_balancers @classic_load_balancers ||= elbv1.describe_load_balancers.load_balancer_descriptions end 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 # 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." 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 def application_load_balancers @application_load_balancers ||= elbv2.describe_load_balancers.load_balancers end # Returns an Array of ports with a cidr of 0.0.0.0/0 # Delegates to AwsInventory::SecurityGroup 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 end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
aws-inventory-0.4.5 | lib/aws_inventory/elb.rb |
aws-inventory-0.4.3 | lib/aws_inventory/elb.rb |
aws-inventory-0.4.2 | lib/aws_inventory/elb.rb |
aws-inventory-0.4.0 | lib/aws_inventory/elb.rb |