Sha256: 4b9abcfec760aa67f9c8da7b92c99330c26f9137e448a990cf68b74fb9622002

Contents?: true

Size: 1.23 KB

Versions: 28

Compression:

Stored size: 1.23 KB

Contents

module VagrantPlugins
  module GuestWindows
    module Cap
      module ChangeHostName

        def self.change_host_name(machine, name)
          change_host_name_and_wait(machine, name, machine.config.vm.graceful_halt_timeout)
        end

        def self.change_host_name_and_wait(machine, name, sleep_timeout)
          # If the configured name matches the current name, then bail
          # We cannot use %ComputerName% because it truncates at 15 chars
          return if machine.communicate.test("if ([System.Net.Dns]::GetHostName() -eq '#{name}') { exit 0 } exit 1")
          
          # Rename and reboot host if rename succeeded
          script = <<-EOH
            $computer = Get-WmiObject -Class Win32_ComputerSystem
            $retval = $computer.rename("#{name}").returnvalue
            if ($retval -eq 0) {
              shutdown /r /t 5 /f /d p:4:1 /c "Vagrant Rename Computer"
            }
            exit $retval
          EOH

          machine.communicate.execute(
            script,
            error_class: Errors::RenameComputerFailed,
            error_key: :rename_computer_failed)

          # Don't continue until the machine has shutdown and rebooted
          sleep(sleep_timeout)
        end
      end
    end
  end
end

Version data entries

28 entries across 25 versions & 4 rubygems

Version Path
vagrant-unbundled-2.0.3.0 plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-2.0.2.0 plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-2.0.1.0 plugins/guests/windows/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.22 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-f3fdbf414272/plugins/guests/windows/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.16 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-1ee58c40e3f5/plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-2.0.0.1 plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-1.9.8.1 plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-1.9.7.1 plugins/guests/windows/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.14 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/guests/windows/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.11 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/guests/windows/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.10 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/guests/windows/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.9 vendor/bundle/ruby/2.3.0/bundler/gems/vagrant-5333e60e2d38/plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-1.9.5.1 plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-1.9.1.1 plugins/guests/windows/cap/change_host_name.rb
vagrant-compose-yaml-0.1.3 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/guests/windows/cap/change_host_name.rb
vagrant-compose-yaml-0.1.2 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/guests/windows/cap/change_host_name.rb
vagrant-compose-yaml-0.1.1 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/guests/windows/cap/change_host_name.rb
vagrant-compose-yaml-0.1.0 vendor/bundle/ruby/2.2.0/bundler/gems/vagrant-dbb756c7b6da/plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-1.8.5.2 plugins/guests/windows/cap/change_host_name.rb
vagrant-unbundled-1.8.5.1 plugins/guests/windows/cap/change_host_name.rb