Sha256: 50eedb005d83d0efd2b31e8dd5d5f1e602bba539fe320103940f445ed8226481

Contents?: true

Size: 1.26 KB

Versions: 8

Compression:

Stored size: 1.26 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 :name

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

      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fog-0.0.40 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.39 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.38 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.37 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.36 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.35 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.34 lib/fog/aws/models/ec2/security_group.rb
fog-0.0.33 lib/fog/aws/models/ec2/security_group.rb