Sha256: 0a83654384456953510178005a0464207376e885f00be6ebd22e76caa7fd19b7

Contents?: true

Size: 1.95 KB

Versions: 25

Compression:

Stored size: 1.95 KB

Contents

module Fog
  module Parsers
    module Compute
      module VcloudDirector
        module VmParserHelper

          def parse_end_element(name, vm)
            case name
            when 'IpAddress'
              vm[:ip_address] = value
            when 'Description'
              if @in_operating_system
                vm[:operating_system] = value
                @in_operating_system = false
              end
            when 'ResourceType'
              @resource_type = value
            when 'VirtualQuantity'
              case @resource_type
              when '3'
                vm[:cpu] = value
              when '4'
                vm[:memory] = value
              end
            when 'ElementName'
              @element_name = value
            when 'Item'
              if @resource_type == '17' # disk
                vm[:disks] ||= []
                vm[:disks] << { @element_name => @current_host_resource[:capacity].to_i }
              end
            when 'Connection'
              vm[:network_adapters] ||= []
              vm[:network_adapters] << {
                :ip_address => @current_network_connection[:ipAddress],
                :primary => (@current_network_connection[:primaryNetworkConnection] == 'true'),
                :ip_allocation_mode => @current_network_connection[:ipAddressingMode],
                :network => value
              }
            when 'Link'
              vm[:links] = @links
            end
          end

          def parse_start_element(name, attributes, vm)
            case name
            when 'OperatingSystemSection'
              @in_operating_system = true
            when 'HostResource'
              @current_host_resource = extract_attributes(attributes)
            when 'Connection'
              @current_network_connection = extract_attributes(attributes)
            when 'Link'
              @links << extract_attributes(attributes)
            end
          end

        end
      end
    end
  end
end

Version data entries

25 entries across 23 versions & 4 rubygems

Version Path
fog-2.3.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-ifeel-2.2.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-2.2.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-2.1.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-1.42.1/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-1.42.1/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-1.42.1/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-1.42.1 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.10 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.9 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-2.0.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-1.42.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-1.41.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-1.40.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-1.39.0 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.8 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.7 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.6 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.5 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb
fog-vcloud-director-0.1.4 lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb