Sha256: e73ae6463d4e2e4cba3492806ecc63b5deb567e40648ae8c44124377db512c22

Contents?: true

Size: 1.25 KB

Versions: 10

Compression:

Stored size: 1.25 KB

Contents

require 'vagrant/util/guest_hosts'

module VagrantPlugins
  module GuestLinux
    module Cap
      module ChangeHostName
        module Methods
          def change_name_command(name)
            return <<-EOH.gsub(/^ {14}/, '')
                # Set the hostname
                echo '#{name}' > /etc/hostname
                hostname '#{name}'
              EOH
          end

          def change_host_name?(comm, name)
            !comm.test("hostname -f | grep '^#{name}$'", sudo: false)
          end

          def change_host_name(machine, name)
            comm = machine.communicate
            
            network_with_hostname = machine.config.vm.networks.map {|_, c| c if c[:hostname] }.compact[0]
            if network_with_hostname
              replace_host(comm, name, network_with_hostname[:ip])
            else
              add_hostname_to_loopback_interface(comm, name)
            end

            if change_host_name?(comm, name)
              comm.sudo(change_name_command(name))
            end
          end
        end

        def self.extended(klass)
          klass.extend(Vagrant::Util::GuestHosts::Linux)
          klass.extend(Methods)
        end

        extend Vagrant::Util::GuestHosts::Linux
        extend Methods
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
vagrant-unbundled-2.3.6.0 plugins/guests/linux/cap/change_host_name.rb
tamtam-vagrant-reload-1.2.1 vendor/cache/vagrant-2092df529ae7/plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.3.3.0 plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.3.2.0 plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.2.19.0 plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.2.18.0 plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.2.16.0 plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.2.14.0 plugins/guests/linux/cap/change_host_name.rb
vagrant-aws-mkubenka-0.7.2.pre.24 vendor/bundle/ruby/2.7.0/bundler/gems/vagrant-22795b161bf6/plugins/guests/linux/cap/change_host_name.rb
vagrant-unbundled-2.2.10.0 plugins/guests/linux/cap/change_host_name.rb