Class: Fog::Parsers::Compute::VcloudDirector::Network

Inherits:
VcloudDirectorParser show all
Defined in:
lib/fog/vcloud_director/parsers/compute/network.rb

Instance Attribute Summary

Attributes inherited from Base

#response

Instance Method Summary collapse

Methods inherited from VcloudDirectorParser

#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

#end_element(name) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/fog/vcloud_director/parsers/compute/network.rb', line 85

def end_element(name)
  case name
  when 'IsInherited'
    @response[:is_inherited] = (value == "true")
  when 'Gateway', 'Netmask', 'Dns1', 'Dns2'
    @response[name.downcase.to_sym] = value
  when 'DnsSuffix'
    @response[:dns_suffix] = value
  when 'StartAddress'
    @ip_range[:start_address] = value
  when 'EndAddress'
    @ip_range[:end_address] = value
  when 'IpRange'
    @response[:ip_ranges] << @ip_range
    @ip_range = {}
  end
end

#resetObject



68
69
70
71
# File 'lib/fog/vcloud_director/parsers/compute/network.rb', line 68

def reset
  @response = { :ip_ranges => [] }
  @ip_range = {}
end

#start_element(name, attributes) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
# File 'lib/fog/vcloud_director/parsers/compute/network.rb', line 73

def start_element(name, attributes)
  super
  case name
  when 'OrgNetwork', 'OrgVdcNetwork' # OrgVdcNetwork belongs to 5.1
    network = extract_attributes(attributes)
    @response.merge!(network.reject {|key,value| ![:href, :name, :type].include?(key)})
    @response[:id] = @response[:href].split('/').last
  when 'Description',
    @response[:description] = value
  end
end