module Fog
module Generators
module Compute
module Vcloudng
class Disks
def self.generate_xml(items=[])
disks = self.class.new(items)
disk.generate
end
def initialize(items=[])
@items = items
end
def modify_hard_disk_size(disk_number, new_size)
found = false
@items.each do |item|
if item['resource_type'] == 17
if item['element_name'] == "Hard disk #{disk_number}"
found = true
raise "Hard disk size can't be reduced" if item['capacity'].to_i > new_size.to_i
item['capacity'] = new_size
end
end
end
raise "Hard disk #{disk_number} not found" unless found
true
end
def generate
output = ""
output << header
@items.each do |item|
output << case item['resource_type']
when 6
scsi_controller(item)
when 17
hard_disk_item(item)
when 5
ide_controller_item(item)
end
end
output << tail
output
end
def header
'
'
end
def tail
''
end
def hard_disk_item(opts={})
"
#{opts['address_on_parent']}
#{opts['description']}
#{opts['element_name']}
#{opts['instance_id']}
#{opts['parent']}
17
"
end
def ide_controller_item(opts={})
"
#{opts['address']}
#{opts['description']}
#{opts['element_name']}
#{opts['instance_id']}
5
"
end
def scsi_controller(opts={})
"
#{opts['address']}
#{opts['description']}
#{opts['element_name']}
#{opts['instance_id']}
#{opts['resource_sub_type']}
6
"
end
end
end
end
end
end