vagrant-hosts 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG ADDED
@@ -0,0 +1,16 @@
1
+ CHANGELOG
2
+ =========
3
+
4
+ 1.1.0
5
+ -----
6
+
7
+ This is a backwards compatible feature and bugfix release.
8
+
9
+ * Support Vagrant 1.2 change_host_name capability
10
+ * Support Vagrant 1.1 and 1.2 change_host_name invocation
11
+ * Add config.vm.hostname into hosts file if set
12
+
13
+ Thanks to the following contributors:
14
+
15
+ - Patrick Otto
16
+ - Luke Amdor
data/lib/vagrant-hosts.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # Declare top level vagrant hosts module.
2
- module VagrantHosts; end
2
+ module VagrantHosts
3
+ REQUIRED_VAGRANT_VERSION = '1.1.0'
4
+ end
3
5
 
4
6
  require 'vagrant-hosts/version'
5
7
  require 'vagrant-hosts/plugin'
@@ -2,8 +2,9 @@ require 'vagrant'
2
2
  require 'vagrant-hosts'
3
3
  require 'vagrant-hosts/version'
4
4
 
5
- if Vagrant::VERSION < "1.1.0"
6
- raise "vagrant-hosts version #{VagrantHosts::VERSION} requires Vagrant 1.1 or later"
5
+ if Vagrant::VERSION < VagrantHosts::REQUIRED_VAGRANT_VERSION
6
+ raise "vagrant-hosts version #{VagrantHosts::VERSION} requires Vagrant " +
7
+ "#{VagrantHosts::REQUIRED_VAGRANT_VERSION} or later"
7
8
  end
8
9
 
9
10
  class VagrantHosts::Plugin < Vagrant.plugin(2)
@@ -1,13 +1,11 @@
1
1
  require 'vagrant'
2
2
  require 'tempfile'
3
3
 
4
-
5
4
  module VagrantHosts
6
5
  class Provisioner < Vagrant.plugin('2', :provisioner)
7
6
 
8
7
  def initialize(machine, config)
9
8
  @machine, @config = machine, config
10
- p
11
9
  end
12
10
 
13
11
  def provision
@@ -20,6 +18,12 @@ class Provisioner < Vagrant.plugin('2', :provisioner)
20
18
 
21
19
  class Linux
22
20
 
21
+ # This has to be inside of this class, because otherwise the hostname mixin
22
+ # will create this class with a different superclass. It makes me sad. :(
23
+ require 'vagrant-hosts/provisioner/hostname'
24
+ include VagrantHosts::Provisioner::Hostname
25
+
26
+
23
27
  def initialize(machine, config)
24
28
  @machine, @config = machine, config
25
29
  end
@@ -39,7 +43,8 @@ class Provisioner < Vagrant.plugin('2', :provisioner)
39
43
  end
40
44
 
41
45
  def update_hosts
42
- @machine.guest.change_host_name(@machine.name.to_s)
46
+ hostname = @machine.config.vm.hostname || @machine.name.to_s
47
+ change_host_name(hostname)
43
48
  @machine.communicate.sudo('install -m 644 /tmp/hosts /etc/hosts')
44
49
  end
45
50
 
@@ -75,10 +80,11 @@ class Provisioner < Vagrant.plugin('2', :provisioner)
75
80
 
76
81
  names.each do |name|
77
82
  network_settings = env.machine(name, :virtualbox).config.vm.networks
83
+ hostname = env.machine(name, :virtualbox).config.vm.hostname
78
84
  network_settings.each do |entry|
79
85
  if entry[0] == :private_network
80
86
  ipaddr = entry[1][:ip]
81
- hosts << [ipaddr, [name]]
87
+ hosts << [ipaddr, [hostname, name]]
82
88
  end
83
89
  end
84
90
  end
@@ -0,0 +1,26 @@
1
+ require 'vagrant'
2
+ require 'vagrant-hosts/provisioner'
3
+
4
+ module VagrantHosts
5
+ class Provisioner
6
+ module Hostname
7
+ # Abstract the details of setting a guest hostname on different versions of
8
+ # Vagrant.
9
+ #
10
+ # Vagrant commit 61d2f9f96fc0f0ef5869c732674f25c4ccc85c8c converts the
11
+ # #change_host_name # method to a capability, which breaks the API between
12
+ # 1.1 and 1.2. :(
13
+
14
+ # @param name [String] The new hostname to apply on the guest
15
+ def change_host_name(name)
16
+ case Vagrant::VERSION
17
+ when /1\.1/
18
+ @machine.guest.change_host_name(name)
19
+ when /1\.2/
20
+ @machine.guest.capability(:change_host_name, name)
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module VagrantHosts
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-hosts
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-24 00:00:00.000000000 Z
12
+ date: 2013-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vagrant
@@ -35,12 +35,14 @@ executables: []
35
35
  extensions: []
36
36
  extra_rdoc_files: []
37
37
  files:
38
+ - CHANGELOG
38
39
  - LICENSE
39
40
  - README.markdown
40
41
  - lib/vagrant-hosts.rb
41
42
  - lib/vagrant-hosts/config.rb
42
43
  - lib/vagrant-hosts/plugin.rb
43
44
  - lib/vagrant-hosts/provisioner.rb
45
+ - lib/vagrant-hosts/provisioner/hostname.rb
44
46
  - lib/vagrant-hosts/version.rb
45
47
  - vagrant-hosts.gemspec
46
48
  homepage: https://github.com/adrienthebo/vagrant-hosts