Class: Fog::VcloudDirector::Compute::Disks

Inherits:
Collection
  • Object
show all
Defined in:
lib/fog/vcloud_director/models/compute/disks.rb

Instance Method Summary collapse

Methods inherited from Collection

#_item_list, #all, #get, #get_by_name, #get_everyone, #index, #with_item_list

Instance Method Details

#create(size) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/fog/vcloud_director/models/compute/disks.rb', line 11

def create(size)
  item_list unless @disks
  data = Fog::VcloudDirector::Generators::Compute::Disks.new(@disks)
  data.add_hard_disk(size)
  response = service.put_disks(vm.id, data.disks)
  service.process_task(response.body)
end

#get_by_id(item_id) ⇒ Object



19
20
21
22
23
# File 'lib/fog/vcloud_director/models/compute/disks.rb', line 19

def get_by_id(item_id)
  item = item_list.find{ |i| i[:id] == item_id}
  item.merge!(:all_disks => @disks, :vm => vm) if item
  item
end

#item_listObject



25
26
27
28
29
30
31
32
33
# File 'lib/fog/vcloud_director/models/compute/disks.rb', line 25

def item_list
  @disks = service.get_vm_disks(vm.id).body
  items = @disks[:disks]
  items.each do |disk|
    disk[:all_disks] = @disks
    disk[:vm] = vm
  end
  items
end

#storage_onlyObject

Returns only disk drives (OVF resource type 17) and not controllers, etc. See <blogs.vmware.com/vapp/2009/11/virtual-hardware-in-ovf-part-1.html>



37
38
39
# File 'lib/fog/vcloud_director/models/compute/disks.rb', line 37

def storage_only
  select {|d| d.resource_type == 17}
end