vagrant-vbguest 0.13.0 → 0.14.0.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec63b20919df037edfd5cc748964d9285308c0f9
4
- data.tar.gz: 7c1c9a39baa48fd06d6a63849f278759bf437125
3
+ metadata.gz: 935cbab1bfa4e2bd7f6f5b303f3e2ffab882d2e3
4
+ data.tar.gz: f950bd3b43ca7df20a1be89f36b09b2e5a5b2056
5
5
  SHA512:
6
- metadata.gz: 08db7ea5d28c561e1d7020e49d2c156fb79a7f92f0a9cda5cd88b2eddb223f962ad12c813e9a1105408239ec2d9987f2fdd6933823969e89148407fa2b79c78e
7
- data.tar.gz: 66df0d6f87b027c563bd9a4167402510170ac527180e6d0e32b399289e621f59c879f55d1790c7cf74c4ced1f51a94c4c1cf59c74f647cf99c2433640d117d8d
6
+ metadata.gz: b1ac88bee5274010f40affce9eb364439dabeee1307208895b91532ad7f97e438c6ae2bc52306906262ac60d3c6eab17e78d67930be0b2b1a2dfef931b3fdb6b
7
+ data.tar.gz: 04fd62c2c2ee0a304bde68e561e088fedf50470c957b3ee16e93af2cf6d0db80b19dd3d1b3b7fb4b5aef8030dcf8a5213f826c8aa6efd44fc57ab5236c699a19
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.14.0-beta1 (2017-02-24)
2
+
3
+ - Added support for VirtualBox 5.1. Thanks @cdloh [GH-238], [GH-230]
4
+ + Waring: The helper method `vboxadd_tool` was replaced by `find_tool(tool)`
5
+ - The installers `distro(vm)` helper method got moved from the `Linux` class down the `Base` class which should make implementing non-linux installers easier. This change was purposed by @fabriciocolombo back in [GH-129]
6
+ - The debian installer added support for proxmox VE. Thanks @maninga [GH-246]
7
+ - The debian installer now calls `apt-get update` with `-y --force-yes` options. Thanks @podarok [GH-237]
8
+ - Add synopsis for help/list-commands. Thanks @m03 [GH-235], [GH-236]
9
+ - Fix typo in the `Installers::Base#yield_installation_warning` method name (keeping the incorrect `yield_installation_waring` as an alias for backward compatibility. This alias will be removed in a future version) Thanks @m03 [GH-234]
10
+
1
11
  ## 0.13.0 (2016-08-12)
2
12
 
3
13
  - Fix a bug introduced by upgrading "micormachine". Thanks @omenlabs for [GH-225]
data/Readme.md CHANGED
@@ -270,6 +270,12 @@ end
270
270
  ```
271
271
 
272
272
 
273
+ ### Extending vbguest (aka Very Advanced Usage)
274
+
275
+ If you find yourself copying the same installer in each of your vagrant project, it might be a good idea to make it a plugin itself. Like vagrant-vbguest itself, installers can be [distributed as ruby gems](http://guides.rubygems.org/publishing/)
276
+
277
+ This poroject contains a [sample installer gem](https://github.com/dotless-de/vagrant-vbguest/tree/master/testdrive/vagrant-vbguest-unikorn) which might serve as an boilerplate.
278
+
273
279
  ## Known Issues
274
280
 
275
281
  * The installer script, which mounts and runs the GuestAdditions Installer Binary, works on Linux only. Most likely it will run on most Unix-like platforms.
@@ -25,6 +25,18 @@ module VagrantVbguest
25
25
  false
26
26
  end
27
27
 
28
+ # A helper method to cache the result of {Vagrant::Guest::Base#distro_dispatch}
29
+ # which speeds up Installer detection runs a lot,
30
+ # when having lots of Linux based Installer classes
31
+ # to check.
32
+ #
33
+ # @see {Vagrant::Guest::Linux#distro_dispatch}
34
+ # @return [Symbol] One of `:debian`, `:ubuntu`, `:gentoo`, `:fedora`, `:redhat`, `:suse`, `:arch`, `:windows`
35
+ def self.distro(vm)
36
+ @@distro ||= {}
37
+ @@distro[ vm_id(vm) ] ||= distro_name vm
38
+ end
39
+
28
40
  attr_reader :env, :vm, :options, :host
29
41
 
30
42
  def initialize(vm, options=nil)
@@ -143,7 +155,7 @@ module VagrantVbguest
143
155
  # Helper to yield a warning message to the user, that the installation
144
156
  # will start _now_.
145
157
  # The message includes the host and installer version strings.
146
- def yield_installation_waring(path_to_installer)
158
+ def yield_installation_warning(path_to_installer)
147
159
  @env.ui.warn I18n.t("vagrant_vbguest.installing#{@options[:force] ? '_forced' : ''}",
148
160
  :guest_version => (guest_version || I18n.t("vagrant_vbguest.unknown")),
149
161
  :installer_version => installer_version(path_to_installer) || I18n.t("vagrant_vbguest.unknown"))
@@ -168,6 +180,8 @@ module VagrantVbguest
168
180
  @env.ui.warn I18n.t("vagrant_vbguest.install_error",
169
181
  :installer_version => installer_version(path_to_installer) || I18n.t("vagrant_vbguest.unknown"))
170
182
  end
183
+ # alias to old method name (containing a typo) for backwards compatibility
184
+ alias_method :yield_installation_waring, :yield_installation_error_warning
171
185
 
172
186
  def iso_file
173
187
  @host.additions_file
@@ -16,7 +16,7 @@ module VagrantVbguest
16
16
  begin
17
17
  communicate.sudo(install_dependencies_cmd, opts, &block)
18
18
  rescue
19
- communicate.sudo('apt-get update', opts, &block)
19
+ communicate.sudo('apt-get -y --force-yes update', opts.merge(:error_check => false), &block)
20
20
  communicate.sudo(install_dependencies_cmd, opts, &block)
21
21
  end
22
22
  super
@@ -28,7 +28,12 @@ module VagrantVbguest
28
28
  end
29
29
 
30
30
  def dependencies
31
- packages = ['linux-headers-`uname -r`']
31
+ # In case of PVE kernel, kernel modules and headers prefix is pve and not linux, so we need to check that.
32
+ packages = if communicate.test('uname -r | grep pve')
33
+ ['pve-headers-`uname -r`']
34
+ else
35
+ ['linux-headers-`uname -r`']
36
+ end
32
37
  # some Debian system (lenny) don't come with a dkms package so we need to skip that.
33
38
  # apt-cache search will exit with 0 even if nothing was found, so we need to grep.
34
39
  packages << 'dkms' if communicate.test('apt-cache search --names-only \'^dkms$\' | grep dkms')
@@ -3,19 +3,6 @@ module VagrantVbguest
3
3
  # A basic Installer implementation for vanilla or
4
4
  # unknown Linux based systems.
5
5
  class Linux < Base
6
-
7
- # A helper method to cache the result of {Vagrant::Guest::Base#distro_dispatch}
8
- # which speeds up Installer detection runs a lot,
9
- # when having lots of Linux based Installer classes
10
- # to check.
11
- #
12
- # @see {Vagrant::Guest::Linux#distro_dispatch}
13
- # @return [Symbol] One of `:debian`, `:ubuntu`, `:gentoo`, `:fedora`, `:redhat`, `:suse`, `:arch`
14
- def self.distro(vm)
15
- @@distro ||= {}
16
- @@distro[ vm_id(vm) ] ||= distro_name vm
17
- end
18
-
19
6
  # Matches if the operating system name prints "Linux"
20
7
  # Raises an Error if this class is beeing subclassed but
21
8
  # this method was not overridden. This is considered an
@@ -77,6 +64,7 @@ module VagrantVbguest
77
64
  upload(iso_file)
78
65
  mount_iso(opts, &block)
79
66
  execute_installer(opts, &block)
67
+ start(opts, &block)
80
68
  unmount_iso(opts, &block) unless options[:no_cleanup]
81
69
  end
82
70
 
@@ -121,7 +109,7 @@ module VagrantVbguest
121
109
  # @yieldparam [String] type Type of the output, `:stdout`, `:stderr`, etc.
122
110
  # @yieldparam [String] data Data for the given output.
123
111
  def rebuild(opts=nil, &block)
124
- communicate.sudo("#{vboxadd_tool} setup", opts, &block)
112
+ communicate.sudo("#{find_tool('vboxadd')} setup", opts, &block)
125
113
  end
126
114
 
127
115
  # @param opts [Hash] Optional options Hash wich meight get passed to {Vagrant::Communication::SSH#execute} and firends
@@ -133,7 +121,15 @@ module VagrantVbguest
133
121
  if systemd_tool
134
122
  communicate.sudo("#{systemd_tool[:path]} vboxadd #{systemd_tool[:up]}", opts, &block)
135
123
  else
136
- communicate.sudo("#{vboxadd_tool} start", opts, &block)
124
+ communicate.sudo("#{find_tool('vboxadd')} start", opts, &block)
125
+ end
126
+
127
+ if Gem::Version.new("#{guest_version}") >= Gem::Version.new('5.1')
128
+ if systemd_tool
129
+ communicate.sudo("#{systemd_tool[:path]} vboxadd-service #{systemd_tool[:up]}", opts, &block)
130
+ else
131
+ communicate.sudo("#{find_tool('vboxadd-service')} start", opts, &block)
132
+ end
137
133
  end
138
134
  end
139
135
 
@@ -166,21 +162,21 @@ module VagrantVbguest
166
162
  end
167
163
  end
168
164
 
169
- # Checks for the correct location of the 'vboxadd' tool.
165
+ # Checks for the correct location of the tool provided.
170
166
  # It checks for a given list of possible locations. This list got
171
167
  # extracted from the 'VBoxLinuxAdditions.run' script.
172
168
  #
173
- # @return [String|nil] Absolute path to the +vboxadd+ tool,
169
+ # @return [String|nil] Absolute path to the tool,
174
170
  # or +nil+ if none found.
175
- def vboxadd_tool
171
+ def find_tool(tool)
176
172
  candidates = [
177
- "/usr/lib/i386-linux-gnu/VBoxGuestAdditions/vboxadd",
178
- "/usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/vboxadd",
179
- "/usr/lib64/VBoxGuestAdditions/vboxadd",
180
- "/usr/lib/VBoxGuestAdditions/vboxadd",
181
- "/lib64/VBoxGuestAdditions/vboxadd",
182
- "/lib/VBoxGuestAdditions/vboxadd",
183
- "/etc/init.d/vboxadd",
173
+ "/usr/lib/i386-linux-gnu/VBoxGuestAdditions/#{tool}",
174
+ "/usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/#{tool}",
175
+ "/usr/lib64/VBoxGuestAdditions/#{tool}",
176
+ "/usr/lib/VBoxGuestAdditions/#{tool}",
177
+ "/lib64/VBoxGuestAdditions/#{tool}",
178
+ "/lib/VBoxGuestAdditions/#{tool}",
179
+ "/etc/init.d/#{tool}",
184
180
  ]
185
181
  cmd = <<-SHELL
186
182
  for c in #{candidates.join(" ")}; do
@@ -207,7 +203,7 @@ module VagrantVbguest
207
203
  # @yieldparam [String] type Type of the output, `:stdout`, `:stderr`, etc.
208
204
  # @yieldparam [String] data Data for the given output.
209
205
  def execute_installer(opts=nil, &block)
210
- yield_installation_waring(installer)
206
+ yield_installation_warning(installer)
211
207
  opts = {:error_check => false}.merge(opts || {})
212
208
  exit_status = communicate.sudo("#{installer} #{installer_arguments}", opts, &block)
213
209
  yield_installation_error_warning(installer) unless exit_status == 0
@@ -7,6 +7,11 @@ module VagrantVbguest
7
7
  include CommandCommons
8
8
  include VagrantPlugins::CommandUp::StartMixins
9
9
 
10
+ # Show description when `vagrant list-commands` is triggered
11
+ def self.synopsis
12
+ "plugin: vagrant-vbguest: install VirtualBox Guest Additions to the machine"
13
+ end
14
+
10
15
  def check_runable_on(vm)
11
16
  raise Vagrant::Errors::VMNotCreatedError if vm.state.id == :not_created
12
17
  raise Vagrant::Errors::VMInaccessible if vm.state.id == :inaccessible
@@ -1,3 +1,3 @@
1
1
  module VagrantVbguest
2
- VERSION = "0.13.0"
2
+ VERSION = "0.14.0-beta1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vbguest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0.pre.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Schulze
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-12 00:00:00.000000000 Z
11
+ date: 2017-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: micromachine
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  version: 1.3.6
132
132
  requirements: []
133
133
  rubyforge_project:
134
- rubygems_version: 2.4.5.1
134
+ rubygems_version: 2.5.2
135
135
  signing_key:
136
136
  specification_version: 4
137
137
  summary: A Vagrant plugin to install the VirtualBoxAdditions into the guest VM