Method: Awspec::Type::SecurityGroup#outbound_opened?

Defined in:
lib/awspec/type/security_group.rb

#outbound_opened?(port = nil, protocol = nil, cidr = nil) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/awspec/type/security_group.rb', line 58

def outbound_opened?(port = nil, protocol = nil, cidr = nil)
  @resource_via_client.ip_permissions_egress.find do |permission|
    next true unless port
    next true unless permission.from_port
    next true unless permission.to_port
    next false unless port_between?(port, permission.from_port, permission.to_port)
    next false if protocol && permission.ip_protocol != protocol
    next true unless cidr
    ret = permission.ip_ranges.select do |ip_range|
      ip_range.cidr_ip == cidr
    end
    next true if ret.count > 0
    ret = permission.user_id_group_pairs.select do |sg|
      next true if sg.group_id == cidr
      sg2 = find_security_group(sg.group_id)
      next true if sg2.group_name == cidr
      sg2.tags.find do |tag|
        tag.key == 'Name' && tag.value == cidr
      end
    end
    next true if ret.count > 0
  end
end