Class: CfFactory::CfEc2SecurityGroup

Inherits:
Object
  • Object
show all
Includes:
CfBase
Defined in:
lib/cf_factory/ec2/cf_ec2_security_group.rb

Instance Method Summary collapse

Methods included from CfBase

#generate, #generate_ref, #get_deletion_policy, #get_name, #get_update_policy, #hash_to_string, #retrieve_attribute, #set_meta_data, #set_quotes, #set_tags

Constructor Details

#initialize(name, description, vpc = nil) ⇒ CfEc2SecurityGroup

Returns a new instance of CfEc2SecurityGroup.



6
7
8
9
10
11
12
13
# File 'lib/cf_factory/ec2/cf_ec2_security_group.rb', line 6

def initialize(name, description, vpc = nil)
  @name = name
  @description = description
  @vpc = vpc
  @ingress_rules = []
  @egress_rules = []
    #TODO: already check name/description for invalid characters
end

Instance Method Details

#add_egress_rule(egress_rule) ⇒ Object



37
38
39
# File 'lib/cf_factory/ec2/cf_ec2_security_group.rb', line 37

def add_egress_rule(egress_rule)
  @egress_rules << egress_rule
end

#add_ingress_rule(ingress_rule) ⇒ Object



33
34
35
# File 'lib/cf_factory/ec2/cf_ec2_security_group.rb', line 33

def add_ingress_rule(ingress_rule)
  @ingress_rules << ingress_rule
end

#get_cf_attributesObject



19
20
21
# File 'lib/cf_factory/ec2/cf_ec2_security_group.rb', line 19

def get_cf_attributes
  {}
end

#get_cf_propertiesObject



23
24
25
26
27
28
29
30
31
# File 'lib/cf_factory/ec2/cf_ec2_security_group.rb', line 23

def get_cf_properties
  result = {"GroupDescription" => @description}
  result["VpcId"] = @vpc.generate_ref unless @vpc.nil?
  ingress = CfHelper.generate_inner_array(@ingress_rules)
  result["SecurityGroupIngress"] = ingress unless @ingress_rules.size == 0
  egress = CfHelper.generate_inner_array(@egress_rules)
  result["SecurityGroupEgress"] = egress unless @egress_rules.size == 0
  result
end

#get_cf_typeObject



15
16
17
# File 'lib/cf_factory/ec2/cf_ec2_security_group.rb', line 15

def get_cf_type
  "AWS::EC2::SecurityGroup"
end