Sha256: b8e1055601557c23d7e1a2042f934e522023222d754b74fbf3d6bc00acd8d9fb

Contents?: true

Size: 1.3 KB

Versions: 86

Compression:

Stored size: 1.3 KB

Contents

require 'fog/model'

module Fog
  module AWS
    module EC2

      class SecurityGroup < Fog::Model

        identity  :name,            'groupName'

        attribute :description,     'groupDescription'
        attribute :ip_permissions,  'ipPermissions'
        attribute :owner_id,        'ownerId'

        def authorize_group_and_owner(group, owner)
          requires :name

          connection.authorize_security_group_ingress(
            'GroupName'                   => @name,
            'SourceSecurityGroupName'     => group,
            'SourceSecurityGroupOwnerId'  => owner
          )
        end

        def authorize_port_range(range, options = {})
          requires :name

          connection.authorize_security_group_ingress(
            'CidrIp'      => options[:cidr_ip] || '0.0.0.0/0',
            'FromPort'    => range.min,
            'GroupName'   => @name,
            'ToPort'      => range.max,
            'IpProtocol'  => options[:ip_protocol] || 'tcp' 
          )
        end

        def destroy
          requires :name

          connection.delete_security_group(@name)
          true
        end

        def save
          requires :description, :name

          data = connection.create_security_group(@name, @description).body
          true
        end

      end

    end
  end
end

Version data entries

86 entries across 86 versions & 2 rubygems

Version Path
fog-0.2.30 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.28 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.27 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.26 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.25 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.24 lib/fog/aws/models/ec2/security_group.rb
tecnh-fog-0.2.23.vpc lib/fog/aws/models/ec2/security_group.rb
fog-0.2.23 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.22 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.21 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.20 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.19 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.18 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.17 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.16 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.15 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.14 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.13 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.12 lib/fog/aws/models/ec2/security_group.rb
fog-0.2.11 lib/fog/aws/models/ec2/security_group.rb