Sha256: eaca43db4103358578e380d77da73fe4d62f92f445e1721e766f7fd67ff41d7a

Contents?: true

Size: 1.98 KB

Versions: 29

Compression:

Stored size: 1.98 KB

Contents

module Fog
  module Parsers
    module Compute
      module VcloudDirector
        class VmCustomization < VcloudDirectorParser
          def reset
            @response = { }
          end

          def start_element(name, attributes)
            super
            case name
            when 'GuestCustomizationSection'
              customizations = extract_attributes(attributes)
              @response[:href] = customizations[:href]
              @response[:type] = customizations[:type]
              # href looks like this:
              #  "https://example.com/api/vApp/vm-2bbbf556-55dc-4974-82e6-aa6e814f0b64/guestCustomizationSection/"
              @response[:id] = @response[:href].split('/')[-2]
            end
          end

          def end_element(name)
            case name
            when 'Enabled'
              @response[:enabled] = (value == "true")
            when 'ChangeSid'
              @response[:change_sid] = (value == "true")
            when 'JoinDomainEnabled'
              @response[:join_domain_enabled] = (value == "true")
            when 'UseOrgSettings'
              @response[:use_org_settings] = (value == "true")
            when 'AdminPassword'
              @response[:admin_password] = value
            when 'AdminPasswordEnabled'
              @response[:admin_password_enabled] = (value == "true")
            when 'AdminPasswordAuto'
              @response[:admin_password_auto] = (value == "true")
            when 'ResetPasswordRequired'
              @response[:reset_password_required] = (value == "true")
            when 'VirtualMachineId'
              @response[:virtual_machine_id] = value
            when 'ComputerName'
              @response[:computer_name] = value
            when 'CustomizationScript'
              @response[:has_customization_script] = !value.empty?
              @response[:customization_script] = CGI::unescapeHTML(value) if @response[:has_customization_script]
            end
          end
        end
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 4 rubygems

Version Path
fog-1.37.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.36.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.35.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-2.0.0.pre.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.34.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.33.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.32.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.31.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
vagrant-cloudstack-1.1.0 vendor/bundle/gems/fog-1.22.1/lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.30.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.29.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.28.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.27.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.26.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.25.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
nsidc-fog-1.24.1 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
fog-1.24.0 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
ns-fog-1.22.11 lib/fog/vcloud_director/parsers/compute/vm_customization.rb
ns-fog-1.22.10 lib/fog/vcloud_director/parsers/compute/vm_customization.rb