Class: Volume

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/models/volume.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.import(aws_volume) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/models/volume.rb', line 10

def self.import(aws_volume)
  volume = Volume.where(remote_id: aws_volume.id).first || Volume.new(remote_id: aws_volume.id)
  volume.attributes = {
    name: aws_volume.tags["Name"],
    remote_id: aws_volume.id,
    state: aws_volume.state,
    volume_type: aws_volume.type,
    iops: aws_volume.iops,
    size: aws_volume.size,
    server: Server.where(remote_id: aws_volume.server_id).first,
    availability_zone: AvailabilityZone.find_or_create_by(name: aws_volume.availability_zone),
    created_at: aws_volume.created_at,
    deleted_at: nil
  }

  volume.save!

  aws_volume.tags.each do |key, value| 
    volume.tags.find_or_create_by(name: key.downcase).update_attributes(value: value.downcase)
  end

  volume
end

Instance Method Details

#set_hourly_rateObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/models/volume.rb', line 34

def set_hourly_rate
  self.hourly_rate = if volume_type == "standard"
                       (0.10 * self.size) / 720
                     elsif volume_type == "io1"
                       (0.10 * self.size) / 720
                     elsif volume_type == "gp2"
                       ((0.125 * self.size) + (0.10 * self.iops)) / 720
                     else
                       raise "Unknown volume_type : #{self.volume_type}"
                     end
end