Class: CfFactory::CfEbsVolume

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

Class Method Summary collapse

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, availability_zone, options = {}) ⇒ CfEbsVolume

Returns a new instance of CfEbsVolume.



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

def initialize(name, availability_zone, options = {})
  @name = name
  @availability_zone = availability_zone
  
  @size = options[:size]
  @snapshot_id = options[:snapshot_id]
  @iops = options[:iops]
  @volume_type = options[:volume_type]
  set_deletion_policy("Delete")
end

Class Method Details

.create_from_snapshot(name, availability_zone, snapshot_id) ⇒ Object



25
26
27
# File 'lib/cf_factory/ec2/cf_ebs_volume.rb', line 25

def self.create_from_snapshot(name, availability_zone, snapshot_id)
  CfEbsVolume.new(name, availability_zone, {:snapshot_id => snapshot_id})
end

.create_normal(name, availability_zone, size) ⇒ Object



17
18
19
# File 'lib/cf_factory/ec2/cf_ebs_volume.rb', line 17

def self.create_normal(name, availability_zone, size)
  CfEbsVolume.new(name, availability_zone, {:size => size}) 
end

.create_piops(name, availability_zone, size, iops) ⇒ Object



21
22
23
# File 'lib/cf_factory/ec2/cf_ebs_volume.rb', line 21

def self.create_piops(name, availability_zone, size, iops)
  CfEbsVolume.new(name, availability_zone, {:size => size, :volume_type => "io1", :iops => iops})
end

Instance Method Details

#get_cf_attributesObject



41
42
43
# File 'lib/cf_factory/ec2/cf_ebs_volume.rb', line 41

def get_cf_attributes
  result = super
end

#get_cf_propertiesObject



45
46
47
48
49
50
51
52
53
# File 'lib/cf_factory/ec2/cf_ebs_volume.rb', line 45

def get_cf_properties
  result = {} 
  result["AvailabilityZone"] = @availability_zone
  result["Size"] = @size unless @size.nil?
  result["VolumeType"] = @volume_type unless @volume_type.nil?
  result["SnapshotId"] = @snapshot_id unless @snapshot_id.nil?
  result["Iops"] = @iops unless @iops.nil?
  result
end

#get_cf_typeObject



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

def get_cf_type
  "AWS::EC2::Volume"
end

#set_deletion_policy(deletion_policy) ⇒ Object



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

def set_deletion_policy(deletion_policy)
  @deletion_policy = deletion_policy
end

#set_tags(tag_list) ⇒ Object



29
30
31
# File 'lib/cf_factory/ec2/cf_ebs_volume.rb', line 29

def set_tags(tag_list)
  @tag_list = tag_list 
end