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/vcloudng/parsers/compute/disks.rb
2013-06-28 15:03:38 +02:00

60 lines
1.6 KiB
Ruby

module Fog
module Parsers
module Compute
module Vcloudng
class Disks < VcloudngParser
def reset
@disk = {}
@response = { 'disks' => [] }
@host_resource = nil
end
def start_element(name, attributes)
super
case name
when 'HostResource'
@host_resource = extract_attributes(attributes)
end
end
def end_element(name)
case name
when 'Address'
@disk['address'] = value.to_i
when 'AddressOnParent'
@disk['address_on_parent'] = value.to_i
when 'Description'
@disk['description'] = value
when 'ElementName'
@disk['element_name'] = value
when 'InstanceID'
@disk['instance_id'] = value.to_i
when 'ResourceSubType'
@disk['resource_sub_type'] = value
when 'Parent'
@disk['parent'] = value.to_i
when 'ResourceType'
@disk['resource_type'] = value.to_i
when 'Item'
if @host_resource
@disk['capacity'] = @host_resource['capacity'].to_i
@disk['bus_sub_type'] = @host_resource['busSubType']
@disk['bus_type'] = @host_resource['busType'].to_i
end
@response['disks'] << @disk
@host_resource = nil
@disk = {}
end
end
end
end
end
end
end