Class: Fog::Parsers::Terremark::Shared::Vapp

Inherits:
TerremarkParser
  • Object
show all
Defined in:
lib/fog/terremark/parsers/shared/vapp.rb

Instance Attribute Summary

Attributes inherited from Base

#response

Instance Method Summary (collapse)

Methods inherited from TerremarkParser

#extract_attributes

Methods inherited from Base

#attr_value, #characters, #end_element_namespace, #initialize, #start_element_namespace, #value

Constructor Details

This class inherits a constructor from Fog::Parsers::Base

Instance Method Details

- (Object) end_element(name)



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/fog/terremark/parsers/shared/vapp.rb', line 26

def end_element(name)
  case name
  when 'IpAddress'
    @response['IpAddress'] = value
  when 'Description'
    if @in_operating_system
      @response['OperatingSystem'][name] = value
      @in_operating_system = false
    end
  when 'ResourceType'
    @resource_type = value
    case value
    when '3'
      @get_cpu = true # cpu
    when '4'  # memory
      @get_ram = true
    when '17' # disks
      @get_disks = true
    end
  when 'VirtualQuantity'
    case @resource_type
    when '3'
      @response['VirtualHardware']['cpu'] = value
    when '4'
      @response['VirtualHardware']['ram'] = value
    when '17'
      @response['VirtualHardware']['disks'] ||= []
      @response['VirtualHardware']['disks'] << value
    end
  end
end

- (Object) reset



6
7
8
9
10
# File 'lib/fog/terremark/parsers/shared/vapp.rb', line 6

def reset
  @response = { 'Links' => [], 'VirtualHardware' => {}, 'OperatingSystem' => {} }
  @in_operating_system = false
  @resource_type = nil
end

- (Object) start_element(name, attributes)



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/fog/terremark/parsers/shared/vapp.rb', line 12

def start_element(name, attributes)
  super
  case name
    when 'Link'
      link = extract_attributes(attributes)
      @response['Links'] << link
    when 'OperatingSystemSection'
      @in_operating_system = true
   when 'VApp'
      vapp = extract_attributes(attributes)
      @response.merge!(vapp.reject {|key,value| !['href', 'name', 'size', 'status', 'type'].include?(key)})
   end
end