class CidrGroupMapping

Public Class Methods

new(all_groups, user_groups) click to toggle source
# File lib/ec2/security_groups.rb, line 60
def initialize(all_groups, user_groups)
  @all_groups = all_groups
  @user_groups = user_groups
end

Public Instance Methods

map(all_traffic) click to toggle source
# File lib/ec2/security_groups.rb, line 65
def map(all_traffic)
  traffic = all_traffic.collect { |traffic|
    traffic.copy(mapping(traffic.from), mapping(traffic.to))
  }
  traffic.uniq.group_by {|t| [t.from, t.to, t.ingress]}.collect {|k,v| Traffic.grouped(v)}.uniq
end

Private Instance Methods

mapping(val) click to toggle source
# File lib/ec2/security_groups.rb, line 73
def mapping(val)
  group = @all_groups.find { |g| g.group_id == val }
  name = group.nil? ? val : group.name
  @user_groups[name] ? @user_groups[name] : name
end