class DrawCloud::SecurityGroup
Attributes
description[RW]
ingress_rules[RW]
name[RW]
Public Class Methods
new(name, description=nil, options={}, &block)
click to toggle source
Calls superclass method
DrawCloud::Base::new
# 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
Public Instance Methods
allow_cidr_in(protocol, cidr, from_port, to_port)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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={})
click to toggle source
# File lib/draw_cloud/security_group.rb, line 55 def consumes(services, options={}) end
load_into_config(config)
click to toggle source
Calls superclass method
DrawCloud::Base#load_into_config
# 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={})
click to toggle source
# File lib/draw_cloud/security_group.rb, line 52 def provides(services, options={}) end
resource_name()
click to toggle source
# File lib/draw_cloud/security_group.rb, line 63 def resource_name resource_style(name) + "SecurityGroup" end
security_group()
click to toggle source
# File lib/draw_cloud/security_group.rb, line 30 def security_group self end
to_h()
click to toggle source
# 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