module AwsInventory::SecurityGroup::Shared
Public Instance Methods
unused_security_groups()
click to toggle source
# File lib/aws_inventory/security_group/shared.rb, line 19 def unused_security_groups used_group_ids = used_security_groups.map(&:group_id) security_groups.reject {|sg| used_group_ids.include?(sg.group_id) } end
used_security_groups()
click to toggle source
# File lib/aws_inventory/security_group/shared.rb, line 2 def used_security_groups groups = instances.inject([]) do |results, i| results += i.security_groups # returns Aws::EC2::Types::GroupIdentifier results end instance_groups = groups.uniq(&:group_id) v1_group_ids = elbv1.describe_load_balancers.load_balancer_descriptions.map(&:security_groups).flatten v2_group_ids = elbv2.describe_load_balancers.load_balancers.map(&:security_groups).flatten elb_group_ids = v1_group_ids + v2_group_ids elb_groups = security_groups.select { |sg| elb_group_ids.include?(sg.group_id) } # returns Aws::EC2::Types::SecurityGroup # Ducktyping: the types are different by they both respond to the group_id method. all_groups = instance_groups + elb_groups all_groups.uniq(&:group_id) end