Class: CfEc2Instance

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

Constant Summary collapse

SUPPORTED_TYPES =
["t1.micro","m1.small","m1.medium","m1.large","m1.xlarge",
"m2.xlarge","m2.2xlarge","m2.4xlarge","m3.xlarge","m3.2xlarge","c1.medium", "c1.xlarge",
"cc1.4xlarge","cc2.8xlarge", "cg1.4xlarge", "hi1.4xlarge"]

Instance Method Summary collapse

Methods included from CfBase

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

Constructor Details

#initialize(name, image_id, instance_type, options = {}) ⇒ CfEc2Instance

Returns a new instance of CfEc2Instance.



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 8

def initialize(name, image_id, instance_type, options = {})
  @name = name
  @image_id = image_id
  @instance_type = instance_type
  @keyname = options[:keyname]
  @subnet = options[:subnet]
  @vpc_security_groups = options[:vpc_security_groups]
  @security_groups = options[:security_groups]      
  @source_dest_check = options[:source_dest_check]
  @user_data = options[:user_data]
  @availability_zone = options[:availability_zone]
  validate()
end

Instance Method Details

#assign_eipObject



52
53
54
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 52

def assign_eip
  #TODo
end

#get_cf_attributesObject



34
35
36
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 34

def get_cf_attributes
  result = super
end

#get_cf_propertiesObject



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 38

def get_cf_properties
  result = {"ImageId" => CfHelper.clean(@image_id),
    "InstanceType" => @instance_type,
  }
  result["KeyName"] = @keyname  unless @keyname.nil?
  result["SubnetId"] = @subnet.generate_ref unless @subnet.nil?
  result["SecurityGroupIds"] = CfHelper.generate_ref_array(@vpc_security_groups) unless @vpc_security_groups.nil?
  result["SecurityGroups"] = CfHelper.generate_ref_array(@security_groups) unless @security_groups.nil?      
  result["SourceDestCheck"] = @source_dest_check unless @source_dest_check.nil?
  result["UserData"] = CfHelper.base64(@user_data) unless @user_data.nil? 
  result["AvailabilityZone"] = @availability_zone unless @availability_zone.nil?
  result
end

#get_cf_typeObject



30
31
32
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 30

def get_cf_type
  "AWS::EC2::Instance"
end

#set_deletion_policy(deletion_policy) ⇒ Object



26
27
28
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 26

def set_deletion_policy(deletion_policy)
  @deletion_policy = deletion_policy
end

#set_tags(tag_list) ⇒ Object



22
23
24
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 22

def set_tags(tag_list)
  @tag_list = tag_list 
end