Class: DrawCloud::SecurityGroup
- Inherits:
-
Base
- Object
- Base
- DrawCloud::SecurityGroup
show all
- Defined in:
- lib/draw_cloud/security_group.rb
Instance Attribute Summary collapse
Attributes inherited from Base
#as_groups, #as_launch_configurations, #deletion_policy, #depends_on, #ec2_instances, #elastic_ips, #gateways, #iam_access_keys, #iam_policies, #iam_users, #mappings, #metadata, #network_acls, #network_interfaces, #outputs, #parameters, #parent, #rdses, #resources, #route_tables, #security_groups, #sns_topics, #subnets, #vpcs, #wait_handles
Instance Method Summary
collapse
-
#allow_cidr_in(protocol, cidr, from_port, to_port) ⇒ Object
-
#allow_security_group_in(protocol, source_security_group_id, from_port, to_port) ⇒ Object
-
#check_validity ⇒ Object
-
#consumes(services, options = {}) ⇒ Object
-
#initialize(name, description = nil, options = {}, &block) ⇒ SecurityGroup
constructor
A new instance of SecurityGroup.
-
#load_into_config(config) ⇒ Object
-
#provides(services, options = {}) ⇒ Object
-
#resource_name ⇒ Object
-
#security_group ⇒ Object
-
#to_h ⇒ Object
Methods inherited from Base
#[], #accessor, #add_standard_properties, #create_as_group, #create_as_launch_configuration, #create_ec2_instance, #create_ec2_instance_template, #create_elastic_ip, #create_iam_access_key, #create_iam_policy, #create_iam_user, #create_mapping, #create_network_acl, #create_network_interface, #create_output, #create_parameter, #create_rds, #create_route_table, #create_security_group, #create_service, #create_sns_topic, #create_subnet, #create_vpc, #create_wait_handle, #ref
Methods included from Locations
#arn_s3
Methods included from Utilities
#desplice, #fnbase64, #fngetatt, #fnjoin, #hash_to_tag_array, #region, #resource_style, #splice, #stack_name
Constructor Details
#initialize(name, description = nil, options = {}, &block) ⇒ SecurityGroup
Returns a new instance of SecurityGroup.
23
24
25
26
27
28
|
# File 'lib/draw_cloud/security_group.rb', line 23
def initialize(name, description=nil, options={}, &block)
@name = name
@description = description || name.to_s
@ingress_rules = []
super(options, &block)
end
|
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
22
23
24
|
# File 'lib/draw_cloud/security_group.rb', line 22
def description
@description
end
|
#ingress_rules ⇒ Object
Returns the value of attribute ingress_rules.
22
23
24
|
# File 'lib/draw_cloud/security_group.rb', line 22
def ingress_rules
@ingress_rules
end
|
#name ⇒ Object
Returns the value of attribute name.
22
23
24
|
# File 'lib/draw_cloud/security_group.rb', line 22
def name
@name
end
|
Instance Method Details
#allow_cidr_in(protocol, cidr, from_port, to_port) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/draw_cloud/security_group.rb', line 43
def allow_cidr_in(protocol, cidr, from_port, to_port)
ingress_rules << {
"IpProtocol" => protocol.to_s,
"CidrIp" => cidr,
"FromPort" => from_port.to_s,
"ToPort" => to_port.to_s
}
end
|
#allow_security_group_in(protocol, source_security_group_id, from_port, to_port) ⇒ Object
34
35
36
37
38
39
40
41
|
# File 'lib/draw_cloud/security_group.rb', line 34
def allow_security_group_in(protocol, source_security_group_id, from_port, to_port)
ingress_rules << {
"IpProtocol" => protocol.to_s,
"SourceSecurityGroupId" => DrawCloud.ref(source_security_group_id),
"FromPort" => from_port.to_s,
"ToPort" => to_port.to_s
}
end
|
#check_validity ⇒ Object
67
68
69
|
# File 'lib/draw_cloud/security_group.rb', line 67
def check_validity
raise(ArgumentError, "Bad description for #{name.inspect} => #{description.inspect}. Must be [a-zA-Z0-9_ -]{0,255}") unless description =~ /^[a-zA-Z0-9_ -]{0,255}$/
end
|
#consumes(services, options = {}) ⇒ Object
55
56
|
# File 'lib/draw_cloud/security_group.rb', line 55
def consumes(services, options={})
end
|
#load_into_config(config) ⇒ Object
58
59
60
61
|
# File 'lib/draw_cloud/security_group.rb', line 58
def load_into_config(config)
config.cf_add_resource resource_name, self
super(config)
end
|
#provides(services, options = {}) ⇒ Object
52
53
|
# File 'lib/draw_cloud/security_group.rb', line 52
def provides(services, options={})
end
|
#resource_name ⇒ Object
63
64
65
|
# File 'lib/draw_cloud/security_group.rb', line 63
def resource_name
resource_style(name) + "SecurityGroup"
end
|
#security_group ⇒ Object
30
31
32
|
# File 'lib/draw_cloud/security_group.rb', line 30
def security_group
self
end
|
#to_h ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/draw_cloud/security_group.rb', line 71
def to_h
check_validity
h = {
"Type" => "AWS::EC2::SecurityGroup",
"Properties" => {
"GroupDescription" => description,
"SecurityGroupIngress" => ingress_rules,
"SecurityGroupEgress" => [],
}
}
h["Properties"]["VpcId"] = DrawCloud.ref(vpc) if vpc
add_standard_properties(h)
end
|