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