class AWS::EC2::SecurityGroup::IpPermissionCollection

Attributes

egress[R]

@return [Boolean]

egress?[R]

@return [Boolean]

security_group[R]

@return [SecurityGroup]

Public Class Methods

new(security_group, options = {}) click to toggle source
Calls superclass method
# File lib/aws/ec2/security_group/ip_permission_collection.rb, line 22
def initialize security_group, options = {}
  @security_group = security_group
  @egress = !!options[:egress]
  super
end

Private Instance Methods

_each_item(options = {}) { |permission| ... } click to toggle source
# File lib/aws/ec2/security_group/ip_permission_collection.rb, line 38
def _each_item options = {}

  list_method = 'ip_permissions_list'
  list_method += '_egress' if egress?

  security_group.send(list_method).each do |p|

    # egress permissions don't always have ports
    ports = p[:from_port] ? [p[:from_port], p[:to_port]] : nil

    ip_ranges = p[:ip_ranges].collect{|ip| ip[:cidr_ip] }

    groups = p[:groups].collect do |group|
      SecurityGroup.new(group[:group_id],
        :owner_id => group[:user_id],
        :vpc_id => security_group.vpc_id,
        :config => config)
    end

    permission = IpPermission.new(security_group, p[:ip_protocol], ports,
      :ip_ranges => ip_ranges,
      :groups => groups,
      :egress => egress?,
      :config => config)

    yield(permission)

  end
end