Sha256: bb074b4ce1b490abd1130b5bd864f89c3947eaa939654713cf1590371f93f453

Contents?: true

Size: 1.28 KB

Versions: 16

Compression:

Stored size: 1.28 KB

Contents

module Fog
  module AWS
    class 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

16 entries across 16 versions & 1 rubygems

Version Path
fog-0.0.56 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.55 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.54 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.53 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.52 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.51 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.50 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.49 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.48 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.47 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.46 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.45 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.44 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.43 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.42 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.41 lib/fog/aws/models/ec2/security_group.rb