Class: Fog::Compute::AWS::SecurityGroup
- Defined in:
- lib/fog/compute/models/aws/security_group.rb
Instance Attribute Summary
Attributes inherited from Model
Instance Method Summary collapse
-
#authorize_group_and_owner(group, owner) ⇒ Object
Authorize access by another security group.
-
#authorize_port_range(range, options = {}) ⇒ Object
Authorize a new port range for a security group.
-
#destroy ⇒ Object
Removes an existing security group.
-
#revoke_group_and_owner(group, owner) ⇒ Object
Revoke access by another security group.
-
#revoke_port_range(range, options = {}) ⇒ Object
Revoke an existing port range for a security group.
-
#save ⇒ Object
Create a security group.
Methods inherited from Model
#initialize, #inspect, #reload, #to_json, #wait_for
Methods included from Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #requires, #requires_one
Constructor Details
This class inherits a constructor from Fog::Model
Instance Method Details
#authorize_group_and_owner(group, owner) ⇒ Object
Authorize access by another security group
>> g = AWS.security_groups.all(:description => "something").first
>> g.authorize_group_and_owner("some_group_name", "1234567890")
Parameters:
- group
-
The name of the security group you’re granting access to.
- owner
-
The owner id for security group you’re granting access to.
Returns:
An excon response object representing the result
<Excon::Response:0x101fc2ae0
@status=200,
@body={"requestId"=>"some-id-string",
"return"=>true},
headers{"Transfer-Encoding"=>"chunked",
"Date"=>"Mon, 27 Dec 2010 22:12:57 GMT",
"Content-Type"=>"text/xml;charset=UTF-8",
"Server"=>"AmazonEC2"}
41 42 43 44 45 46 47 48 49 |
# File 'lib/fog/compute/models/aws/security_group.rb', line 41 def (group, owner) requires :name connection.( name, 'SourceSecurityGroupName' => group, 'SourceSecurityGroupOwnerId' => owner ) end |
#authorize_port_range(range, options = {}) ⇒ Object
Authorize a new port range for a security group
>> g = AWS.security_groups.all(:description => "something").first
>> g.authorize_port_range(20..21)
Parameters:
- range
-
A Range object representing the port range you want to open up. E.g., 20..21
- options
-
A hash that can contain any of the following keys:
:cidr_ip (defaults to "0.0.0.0/0") :ip_protocol (defaults to "tcp")
Returns:
An excon response object representing the result
<Excon::Response:0x101fc2ae0
@status=200,
@body={"requestId"=>"some-id-string",
"return"=>true},
headers{"Transfer-Encoding"=>"chunked",
"Date"=>"Mon, 27 Dec 2010 22:12:57 GMT",
"Content-Type"=>"text/xml;charset=UTF-8",
"Server"=>"AmazonEC2"}
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/fog/compute/models/aws/security_group.rb', line 79 def (range, = {}) requires :name connection.( name, 'CidrIp' => [:cidr_ip] || '0.0.0.0/0', 'FromPort' => range.min, 'ToPort' => range.max, 'IpProtocol' => [:ip_protocol] || 'tcp' ) end |
#destroy ⇒ Object
Removes an existing security group
security_group.destroy
Returns
True or false depending on the result
100 101 102 103 104 105 |
# File 'lib/fog/compute/models/aws/security_group.rb', line 100 def destroy requires :name connection.delete_security_group(name) true end |
#revoke_group_and_owner(group, owner) ⇒ Object
Revoke access by another security group
>> g = AWS.security_groups.all(:description => "something").first
>> g.revoke_group_and_owner("some_group_name", "1234567890")
Parameters:
- group
-
The name of the security group you’re revoking access to.
- owner
-
The owner id for security group you’re revoking access access to.
Returns:
An excon response object representing the result
<Excon::Response:0x101fc2ae0
@status=200,
@body={"requestId"=>"some-id-string",
"return"=>true},
headers{"Transfer-Encoding"=>"chunked",
"Date"=>"Mon, 27 Dec 2010 22:12:57 GMT",
"Content-Type"=>"text/xml;charset=UTF-8",
"Server"=>"AmazonEC2"}
133 134 135 136 137 138 139 140 141 |
# File 'lib/fog/compute/models/aws/security_group.rb', line 133 def revoke_group_and_owner(group, owner) requires :name connection.revoke_security_group_ingress( name, 'SourceSecurityGroupName' => group, 'SourceSecurityGroupOwnerId' => owner ) end |
#revoke_port_range(range, options = {}) ⇒ Object
Revoke an existing port range for a security group
>> g = AWS.security_groups.all(:description => "something").first
>> g.revoke_port_range(20..21)
Parameters:
- range
-
A Range object representing the port range you want to open up. E.g., 20..21
- options
-
A hash that can contain any of the following keys:
:cidr_ip (defaults to "0.0.0.0/0") :ip_protocol (defaults to "tcp")
Returns:
An excon response object representing the result
<Excon::Response:0x101fc2ae0
@status=200,
@body={"requestId"=>"some-id-string",
"return"=>true},
headers{"Transfer-Encoding"=>"chunked",
"Date"=>"Mon, 27 Dec 2010 22:12:57 GMT",
"Content-Type"=>"text/xml;charset=UTF-8",
"Server"=>"AmazonEC2"}
171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/fog/compute/models/aws/security_group.rb', line 171 def revoke_port_range(range, = {}) requires :name connection.revoke_security_group_ingress( name, 'CidrIp' => [:cidr_ip] || '0.0.0.0/0', 'FromPort' => range.min, 'ToPort' => range.max, 'IpProtocol' => [:ip_protocol] || 'tcp' ) end |
#save ⇒ Object
Create a security group
>> g = AWS.security_groups.new(:name => "some_name", :description => "something")
>> g.save
Returns:
True or an exception depending on the result. Keep in mind that this creates a new security group. As such, it yields an InvalidGroup.Duplicate exception if you attempt to save an existing group.
194 195 196 197 198 199 |
# File 'lib/fog/compute/models/aws/security_group.rb', line 194 def save requires :description, :name data = connection.create_security_group(name, description).body true end |