Class: Fog::Compute::AWS::SecurityGroup

Inherits:
Model
  • Object
show all
Defined in:
lib/conan/cloud/aws/security_group.rb

Instance Method Summary collapse

Instance Method Details

#authorize_ip_permission(port_range, options = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/conan/cloud/aws/security_group.rb', line 8

def authorize_ip_permission(port_range, options = {})
  requires :name

  permission = {
    'FromPort'    => port_range.min,
    'ToPort'      => port_range.max,
    'IpProtocol'  => options[:ip_protocol] || 'tcp'
  }

  if options[:group_name]
    grp_permitted = {'GroupName' => options[:group_name]}
    grp_permitted['UserId'] = options[:user_id] if options[:user_id]
    permission['Groups'] = [grp_permitted]
  else 
    ip_permitted = {'CidrIp' => "0.0.0.0/0"}
    if options[:cidr_ip]
      ip_permitted = {'CidrIp' => options[:cidr_ip]}
    end 
    permission['IpRanges'] = [ip_permitted]
  end

  connection.authorize_security_group_ingress(
    name,
    'IpPermissions' => [permission]
  )
end