Class: CfFactory::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, #get_update_policy, #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.



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

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]
  @network_interfaces = options[:network_interfaces]
  validate()
end

Instance Method Details

#assign_eipObject



63
64
65
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 63

def assign_eip
  #TODo
end

#get_cf_attributesObject



36
37
38
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 36

def get_cf_attributes
  result = super
end

#get_cf_propertiesObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 40

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?
  if !@network_interfaces.nil? && @network_interfaces.size > 0
    nics = []
    index = 0
    @network_interfaces.each() {|nic|
      nics << CfFactory::CfInnerNetworkInterface.new(nic, index)
      index += 1
    }
    result["NetworkInterfaces"] = CfHelper.generate_inner_array(nics)
  end
  result
end

#get_cf_typeObject



32
33
34
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 32

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

#set_deletion_policy(deletion_policy) ⇒ Object



28
29
30
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 28

def set_deletion_policy(deletion_policy)
  @deletion_policy = deletion_policy
end

#set_tags(tag_list) ⇒ Object



24
25
26
# File 'lib/cf_factory/ec2/cf_ec2_instance.rb', line 24

def set_tags(tag_list)
  @tag_list = tag_list 
end