1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/vcloud_director/models/compute/disks.rb

41 lines
984 B
Ruby
Raw Normal View History

2013-06-28 12:49:11 +02:00
require 'fog/core/collection'
2013-08-27 11:19:54 +02:00
require 'fog/vcloud_director/models/compute/disk'
2013-06-28 12:49:11 +02:00
module Fog
module Compute
2013-08-27 11:19:54 +02:00
class VcloudDirector
2013-06-28 12:49:11 +02:00
class Disks < Collection
2013-08-27 11:19:54 +02:00
model Fog::Compute::VcloudDirector::Disk
2013-09-16 18:13:09 +01:00
attribute :vm
2013-09-16 18:13:09 +01:00
2013-06-28 12:49:11 +02:00
def create(size)
item_list unless @disks
2013-08-27 11:19:54 +02:00
data = Fog::Generators::Compute::VcloudDirector::Disks.new(@disks)
2013-06-28 12:49:11 +02:00
data.add_hard_disk(size)
response = service.put_vm_disks(vm.id, data.disks)
service.process_task(response.body)
2013-06-28 12:49:11 +02:00
end
2013-09-16 18:13:09 +01:00
def get_by_id(item_id)
item = item_list.detect{ |i| i[:id] == item_id}
2013-08-20 15:33:34 +02:00
item.merge!(:all_disks => @disks, :vm => vm) if item
item
end
2013-09-16 18:13:09 +01:00
def item_list
@disks = service.get_vm_disks(vm.id).body
items = @disks[:disks]
2013-09-16 18:13:09 +01:00
items.each do |disk|
disk[:all_disks] = @disks
disk[:vm] = vm
end
items
2013-06-28 12:49:11 +02:00
end
2013-09-16 18:13:09 +01:00
2013-06-28 12:49:11 +02:00
end
end
end
2013-09-16 18:13:09 +01:00
end