vagrant-vbguest 0.16.0 → 0.17.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -17
  3. data/Readme.md +2 -20
  4. data/lib/vagrant-vbguest/command.rb +12 -7
  5. data/lib/vagrant-vbguest/config.rb +1 -1
  6. data/lib/vagrant-vbguest/download.rb +6 -4
  7. data/lib/vagrant-vbguest/{vagrant_compat/vagrant_1_1 → helpers}/rebootable.rb +26 -3
  8. data/lib/vagrant-vbguest/{vagrant_compat/vagrant_1_1 → helpers}/vm_compatible.rb +1 -1
  9. data/lib/vagrant-vbguest/hosts/base.rb +1 -0
  10. data/lib/vagrant-vbguest/installers/base.rb +2 -0
  11. data/lib/vagrant-vbguest/installers/centos.rb +56 -0
  12. data/lib/vagrant-vbguest/installers/linux.rb +2 -0
  13. data/lib/vagrant-vbguest/middleware.rb +2 -3
  14. data/lib/vagrant-vbguest/version.rb +1 -1
  15. data/lib/vagrant-vbguest.rb +3 -4
  16. data/locales/en.yml +1 -1
  17. metadata +6 -24
  18. data/lib/vagrant-vbguest/core_ext/string/interpolate.rb +0 -110
  19. data/lib/vagrant-vbguest/helpers.rb +0 -6
  20. data/lib/vagrant-vbguest/rebootable.rb +0 -39
  21. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/command.rb +0 -17
  22. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/download.rb +0 -51
  23. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/rebootable.rb +0 -23
  24. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/vm_compatible.rb +0 -31
  25. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/command.rb +0 -23
  26. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/download.rb +0 -1
  27. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/command.rb +0 -1
  28. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/download.rb +0 -18
  29. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/rebootable.rb +0 -1
  30. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/vm_compatible.rb +0 -15
  31. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/command.rb +0 -1
  32. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/download.rb +0 -1
  33. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/rebootable.rb +0 -1
  34. data/lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/vm_compatible.rb +0 -1
  35. data/lib/vagrant-vbguest/vagrant_compat.rb +0 -21
  36. data/lib/vagrant_init.rb +0 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 044db5528f1ea0683ca52451c14a80ebdd49aa28
4
- data.tar.gz: 35e0dcd9dd9bfb065ed3805f3af10ee9237a6e71
3
+ metadata.gz: 274176f24515e91e436ad3ccdc2429ecccfa0fc3
4
+ data.tar.gz: da52c08f02526cec644e12be290eef75d0afd9d2
5
5
  SHA512:
6
- metadata.gz: 6425c2a85455370d496403bf8f4472685a610678a0710616caca28bfee4e547af9a15128a94bf511d508ece54548be11df664684df31afb74783aeb81adc809b
7
- data.tar.gz: 06d426a4047f5509ba591966c5fa392ecf0ec576f68b85b281de36f05562496818b9e6575f6af41f4ff4ae63f1f25a00987b10ea45614eee74b77205b7e2f890
6
+ metadata.gz: e15a74c8de223bba2724d108937918d4c50e6ae3a0566c790918e8751cd430511acda663a139ef4b4c0141bce8c8cbd35b91b1efb8a61068e74342d6d6256906
7
+ data.tar.gz: 4de7babe91837d6b56feb479e86f9ccab9f63409d3ce323820ff37276b01ace3c016b542d36803a7bb47b101aeb1f99f172e3c0ed94a5e48fe12b3ded8b1b55f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.17.0.beta1 (2018-12-07)
2
+
3
+ - New CentOS specific installer. Thanks @bstopp [GH-314]
4
+ - Big cleanup, dropping support for Vagrant < 1.3. [GH-313]
5
+ - Changes the status message for "No Virtualbox Guest Additions installation found". Thanks @SchnWalter [GH-308]
6
+
1
7
  ## 0.16.0 (2018-09-04)
2
8
 
3
9
  No changes to 0.16.0.beta1
@@ -19,7 +25,7 @@ See discussion in [GH-300]. Thanks @cbj4074 for asking the right questions.
19
25
 
20
26
  ## 0.15.0 (2017-09-21)
21
27
 
22
- - Interactive userinputs from the installer run will be answered with "yes" by default. Thanks @jerr0328 [GH-268], [GH-267]
28
+ - Interactive user inputs from the installer run will be answered with "yes" by default. Thanks @jerr0328 [GH-268], [GH-267]
23
29
  - Added logging of mounting/umounting VBoxGuestAdditions.iso file. Thanks @m03 [GH-249]
24
30
  - Updates remote location of development dependencies.
25
31
 
@@ -49,7 +55,7 @@ No changes.
49
55
 
50
56
  - Fix a bug introduced by upgrading "micormachine". Thanks @omenlabs for [GH-225]
51
57
  - Fix a typo in a local variable. Thanks @vdloo for [GH-227]
52
- - Add a Arch Linux specific installer. Thanks @vdloo, also for fixing some typos in [GH-229]
58
+ - Add an Arch Linux specific installer. Thanks @vdloo, also for fixing some typos in [GH-229]
53
59
  - Add a SUSE Linux Enterprise Server (sles) specific installer to address [GH-219] and [GH-216]. Thanks @vpereira, @glookie1 for the hard digging. Thanks @vpereira for [GH-219]. Thanks @bkeepers for the dontenv project, from which I stole it's parser.
54
60
 
55
61
  ## 0.12.0 (2016-06-16)
@@ -77,9 +83,9 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
77
83
  - Add installer for oracle. Thanks @TobyHFerguson for [GH-145]
78
84
  - Add redhat installer support for centos7. Thanks @roidelapluie for [GH-162]
79
85
  - Add debian installer support for debian8. Thanks @ubermuda for [GH-171]
80
- - Add ISO autodetection on Archlinux hosts. [GH-135]
86
+ - Add ISO auto-detection on Archlinux hosts. [GH-135]
81
87
  - Add lookup for the `vboxadd` tool, instead of assuming it in `/etc/init.d`
82
- - And systemd-ish startup methods if available, instead of assuming `/etc/init.d/vboxadd` beeing useable.
88
+ - And systemd-ish startup methods if available, instead of assuming `/etc/init.d/vboxadd` being useable.
83
89
  - Add configuration options for iso upload path and mount point.
84
90
  - Add a `--no-cleanup` command-line switch to make debugging a bit more convenient.
85
91
 
@@ -119,7 +125,7 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
119
125
  - Adds support for vagrant 1.3 [GH-71], [GH-72]
120
126
  - Fix crash when using as a command [GH-68].
121
127
  - Don't trust VirtualBox Media Manager informations when
122
- looking for a iso file. [GH-70]
128
+ looking for an iso file. [GH-70]
123
129
 
124
130
  ### heads-up
125
131
 
@@ -136,15 +142,15 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
136
142
  (thanks @Andrew8xx8 for pointing directions)
137
143
  - Fix basic/fallback linux installer [GH-56]
138
144
  - Guard auto-reload on broken vagrant builds.
139
- Some varant 1.1.x versions have a bug regarding ssh and cleaning
140
- up old connections, which results in varant crashing when a box
145
+ Some vagrant 1.1.x versions have a bug regarding ssh and cleaning
146
+ up old connections, which results in vagrant crashing when a box
141
147
  is reloaded.
142
148
 
143
149
  ## 0.7.1
144
150
 
145
151
  - Fix auto-reloading for vagrant 1.1 [GH-52]
146
152
  Also changes the reload method for vagrant 1.0 when ran
147
- as middleware (to not run buildin actions manually).
153
+ as middleware (to not run build-in actions manually).
148
154
 
149
155
  ## 0.7.0
150
156
 
@@ -160,14 +166,14 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
160
166
  - Fix an issue with VirtualBox GuestAdditions 4.2.8 [GH-44] /
161
167
  (thanks @jimmycuadra)
162
168
  - Reworked bunch of internals, particularly how vagrants's
163
- environemnt is passed arround. Also decoupled GuestAdditions
164
- finder into a seperate class.
165
- - Intodruce a vagrant 1.0 compatibility layer for Installers and
169
+ environment is passed around. Also decoupled GuestAdditions
170
+ finder into a separate class.
171
+ - Introduce a vagrant 1.0 compatibility layer for Installers and
166
172
  other vbguest internals
167
173
 
168
174
  ### heads-up
169
175
 
170
- - [GH-44] changes the behavior of vbguest to that effect, that it
176
+ - [GH-44] changes the behaviour of vbguest to that effect, that it
171
177
  will no longer halt vagrant workflow if running the VirtualBox
172
178
  GuestAdditions Installer returns an error-code.
173
179
  Instead it will print a human readable waring message.
@@ -206,7 +212,7 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
206
212
  ## 0.6.0 (2013-01-13)
207
213
 
208
214
  - Debian installer now cope with missing `dkms` package [GH-30]
209
- - Fixed some issues when runnig on just creating boxes [GH-31]
215
+ - Fixed some issues when running on just creating boxes [GH-31]
210
216
  - Fixed workding (thx @scalp42) [GH-32]
211
217
  - Add debug logging
212
218
  - Installers no longer are shell scripts, but ruby classes
@@ -233,7 +239,7 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
233
239
  - Box will be rebooted if the GuestAdditions installation
234
240
  process does not load the kernel module [GH-25], [GH-24]
235
241
  - Add `--auto-reboot` argument to allow rebooting when running as a
236
- command (which is disabled by default when runnind as command)
242
+ command (which is disabled by default when running as command)
237
243
  - Adds this Changelog
238
244
 
239
245
  ## 0.4.0 (2012-10-21)
@@ -252,7 +258,7 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
252
258
 
253
259
  ## 0.3.3
254
260
 
255
- - Add Fedora to the list of supported plattforms [GH-17]
261
+ - Add Fedora to the list of supported platforms [GH-17]
256
262
  - Add system package update (`apt-get update`) to the
257
263
  debian installer if package installation fails [GH-16]
258
264
  - Drop dependency on `vagrant` gem [GH-15]
@@ -260,7 +266,7 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
260
266
  ## 0.3.2
261
267
 
262
268
  - Stop GuestAdditions installation and fail with an error
263
- when installation of dependency packes fails [GH-13]
269
+ when installation of dependency packages fails [GH-13]
264
270
 
265
271
  ## 0.3.1
266
272
 
@@ -273,7 +279,7 @@ For a full diff see: https://github.com/dotless-de/vagrant-vbguest/compare/v0.11
273
279
 
274
280
  ## 0.2.1
275
281
 
276
- - Typo fixes in readme and internal renamings. [GH-9], [GH-7]
282
+ - Typo fixes in readme and internal renaming. [GH-9], [GH-7]
277
283
 
278
284
  ## 0.2.0
279
285
 
data/Readme.md CHANGED
@@ -4,38 +4,20 @@
4
4
 
5
5
  [![Join the chat at https://gitter.im/dotless-de/vagrant-vbguest](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotless-de/vagrant-vbguest?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
6
6
  [![Code Climate](https://codeclimate.com/github/dotless-de/vagrant-vbguest.svg)](https://codeclimate.com/github/dotless-de/vagrant-vbguest)
7
- [![Dependency Status](https://gemnasium.com/dotless-de/vagrant-vbguest.svg)](https://gemnasium.com/dotless-de/vagrant-vbguest)
8
7
  [![Inline docs](http://inch-ci.org/github/dotless-de/vagrant-vbguest.svg?branch=master)](http://inch-ci.org/github/dotless-de/vagrant-vbguest)
9
8
  [![Gem Version](https://badge.fury.io/rb/vagrant-vbguest.svg)](https://badge.fury.io/rb/vagrant-vbguest)
10
9
 
11
10
 
12
11
  ## Installation
13
12
 
14
- Requires vagrant 0.9.4 or later (including 1.x)
13
+ Requires vagrant 1.3 or later
15
14
 
16
- ### Vagrant ≥ 1.1
15
+ ### Vagrant ≥ 1.3
17
16
 
18
17
  ```bash
19
18
  $ vagrant plugin install vagrant-vbguest
20
19
  ```
21
20
 
22
- ### Vagrant 1.0 and older
23
-
24
- Since vagrant v1.0.0 the preferred installation method for vagrant is using the provided packages or installers.
25
- If you installed vagrant that way, you need to use vagrant's gem wrapper:
26
-
27
- ```bash
28
- $ vagrant gem install vagrant-vbguest
29
- ```
30
-
31
- If you installed vagrant using RubyGems, use:
32
-
33
- ```bash
34
- $ gem install vagrant-vbguest
35
- ```
36
-
37
- Compatibly for vagrant 0.8 is provided by version 0.0.3 (which lacks a bunch of new options)
38
-
39
21
  ## Configuration / Usage
40
22
 
41
23
  If you're lucky, *vagrant-vbguest* does not require any configuration.
@@ -1,12 +1,11 @@
1
1
  require 'optparse'
2
+ require Vagrant.source_root.join("plugins/commands/up/start_mixins")
3
+ require 'vagrant-vbguest/helpers/rebootable'
2
4
 
3
5
  module VagrantVbguest
4
-
5
- module CommandCommons
6
+ class Command < Vagrant.plugin("2", :command)
7
+ include VagrantPlugins::CommandUp::StartMixins
6
8
  include VagrantVbguest::Helpers::Rebootable
7
- def self.included(base)
8
- base.extend(ClassMethods)
9
- end
10
9
 
11
10
  # Runs the vbguest installer on the VMs that are represented
12
11
  # by this environment.
@@ -72,7 +71,11 @@ module VagrantVbguest
72
71
  with_target_vms(vm_name) { |vm| execute_on_vm(vm, options) }
73
72
  end
74
73
  end
74
+ end
75
75
 
76
+ # Show description when `vagrant list-commands` is triggered
77
+ def self.synopsis
78
+ "plugin: vagrant-vbguest: install VirtualBox Guest Additions to the machine"
76
79
  end
77
80
 
78
81
  protected
@@ -103,8 +106,10 @@ module VagrantVbguest
103
106
  end
104
107
 
105
108
  def check_runable_on(vm)
106
- raise NotImplementedError
109
+ raise Vagrant::Errors::VMNotCreatedError if vm.state.id == :not_created
110
+ raise Vagrant::Errors::VMInaccessible if vm.state.id == :inaccessible
111
+ raise Vagrant::Errors::VMNotRunningError if vm.state.id != :running
112
+ raise VagrantVbguest::NoVirtualBoxMachineError if vm.provider.class != VagrantPlugins::ProviderVirtualBox::Provider
107
113
  end
108
114
  end
109
-
110
115
  end
@@ -1,6 +1,6 @@
1
1
  module VagrantVbguest
2
2
 
3
- class Config <( Vagrant::VERSION < "1.1.0" ? Vagrant::Config::Base : Vagrant.plugin("2", :config) )
3
+ class Config < Vagrant.plugin("2", :config)
4
4
 
5
5
  module Attributes
6
6
  attr_accessor :auto_update, :auto_reboot, :no_install, :no_remote,
@@ -1,6 +1,5 @@
1
1
  module VagrantVbguest
2
-
3
- class DownloadBase
2
+ class Download
4
3
  attr_reader :source, :destination, :downloader
5
4
 
6
5
  def initialize(source, destination, options=nil)
@@ -14,7 +13,11 @@ module VagrantVbguest
14
13
  end
15
14
 
16
15
  def download!
17
- raise NotImplementedError
16
+ downloader_options = {}
17
+ downloader_options[:ui] = @ui
18
+ @ui.info(I18n.t("vagrant_vbguest.download.started", :source => @source))
19
+ @downloader = Vagrant::Util::Downloader.new(@source, @destination, downloader_options)
20
+ @downloader.download!
18
21
  end
19
22
 
20
23
  def cleanup
@@ -35,5 +38,4 @@ module VagrantVbguest
35
38
  end
36
39
  end
37
40
  end
38
-
39
41
  end
@@ -1,9 +1,33 @@
1
- require 'vagrant-vbguest/rebootable'
1
+ require 'vagrant-vbguest/helpers/vm_compatible'
2
2
 
3
3
  module VagrantVbguest
4
4
  module Helpers
5
-
6
5
  module Rebootable
6
+ include VmCompatible
7
+
8
+ def self.included(base)
9
+ base.extend(ClassMethods)
10
+ end
11
+
12
+ @@rebooted = {}
13
+
14
+ def rebooted?(vm)
15
+ !!@@rebooted[ self.class.vm_id(vm) ]
16
+ end
17
+
18
+ def reboot?(vm, options)
19
+ if rebooted?(vm)
20
+ vm.env.ui.error(I18n.t("vagrant_vbguest.restart_loop_guard_activated"))
21
+ false
22
+ elsif options[:auto_reboot]
23
+ vm.env.ui.warn(I18n.t("vagrant_vbguest.restart_vm"))
24
+ @@rebooted[ self.class.vm_id(vm) ] = true
25
+ else
26
+ vm.env.ui.warn(I18n.t("vagrant_vbguest.suggest_restart", :name => vm.name))
27
+ false
28
+ end
29
+ end
30
+
7
31
  def reboot(vm, options)
8
32
  if reboot? vm, options
9
33
  simple_reboot = Vagrant::Action::Builder.new.tap do |b|
@@ -28,6 +52,5 @@ module VagrantVbguest
28
52
  end
29
53
  end
30
54
  end
31
-
32
55
  end
33
56
  end
@@ -23,7 +23,7 @@ module VagrantVbguest
23
23
  end
24
24
 
25
25
  def distro_name(vm)
26
- vm.guest.distro_dispatch
26
+ vm.guest.name
27
27
  end
28
28
  end
29
29
  end
@@ -1,4 +1,5 @@
1
1
  require 'uri'
2
+ require 'vagrant-vbguest/helpers/vm_compatible'
2
3
 
3
4
  module VagrantVbguest
4
5
  module Hosts
@@ -1,3 +1,5 @@
1
+ require 'vagrant-vbguest/helpers/vm_compatible'
2
+
1
3
  module VagrantVbguest
2
4
  module Installers
3
5
  class Error < Vagrant::Errors::VagrantError
@@ -0,0 +1,56 @@
1
+ module VagrantVbguest
2
+ module Installers
3
+ class CentOS < RedHat
4
+
5
+ def self.match?(vm)
6
+ super && communicate_to(vm).test('test -f /etc/centos-release')
7
+ end
8
+
9
+ # Install missing deps and yield up to regular linux installation
10
+ def install(opts=nil, &block)
11
+ install_kernel_deps(opts, &block)
12
+ super(opts=nil, &block)
13
+ end
14
+
15
+ protected
16
+ def install_kernel_deps(opts=nil, &block)
17
+ unless check_devel_info
18
+ release = release_version
19
+ update_release_repos(opts=nil, &block)
20
+ install_kernel_devel(release)
21
+ end
22
+ end
23
+
24
+ def check_devel_info
25
+ communicate.test('yum info kernel-devel-`uname -r`', { sudo: true })
26
+ end
27
+
28
+ def release_version
29
+ release = nil
30
+ communicate.sudo('cat /etc/centos-release') do |type, data|
31
+ release = data.to_s[/(\d+\.\d+\.\d+)/, 1]
32
+ end
33
+ release
34
+ end
35
+
36
+ def update_release_repos(opts=nil, &block)
37
+ communicate.sudo('yum install -y centos-release', opts=nil, &block)
38
+ end
39
+
40
+ def install_kernel_devel(rel, opts=nil, &block)
41
+ communicate.sudo(
42
+ "yum install -y kernel-devel-`uname -r` --enablerepo=C#{rel}-base --enablerepo=C#{rel}-updates",
43
+ opts=nil,
44
+ &block
45
+ )
46
+ end
47
+
48
+ def dependencies
49
+ packages = [ 'gcc', 'binutils', 'make', 'perl', 'bzip2' ]
50
+ packages.join ' '
51
+ end
52
+ end
53
+ end
54
+ end
55
+ # Load this before the RedHat one, as we want it to be picked up first. (The higher the sooner its checked).
56
+ VagrantVbguest::Installer.register(VagrantVbguest::Installers::CentOS, 6)
@@ -1,3 +1,5 @@
1
+ require 'vagrant-vbguest/helpers/os_release'
2
+
1
3
  module VagrantVbguest
2
4
  module Installers
3
5
  # A basic Installer implementation for vanilla or
@@ -1,9 +1,9 @@
1
- module VagrantVbguest
1
+ require 'vagrant-vbguest/helpers/rebootable'
2
2
 
3
+ module VagrantVbguest
3
4
  # A Vagrant middleware which checks the installed VirtualBox Guest
4
5
  # Additions to match the installed VirtualBox installation on the
5
6
  # host system.
6
-
7
7
  class Middleware
8
8
  include VagrantVbguest::Helpers::Rebootable
9
9
 
@@ -38,6 +38,5 @@ module VagrantVbguest
38
38
  end
39
39
  opts
40
40
  end
41
-
42
41
  end
43
42
  end
@@ -1,3 +1,3 @@
1
1
  module VagrantVbguest
2
- VERSION = "0.16.0"
2
+ VERSION = "0.17.0.beta1"
3
3
  end
@@ -9,10 +9,8 @@ I18n.load_path << File.expand_path("../../locales/en.yml", __FILE__)
9
9
  I18n.reload!
10
10
 
11
11
  require "vagrant-vbguest/errors"
12
- require 'vagrant-vbguest/vagrant_compat'
13
-
14
- require 'vagrant-vbguest/helpers'
15
-
12
+ require 'vagrant-vbguest/download'
13
+ require 'vagrant-vbguest/command'
16
14
  require 'vagrant-vbguest/machine'
17
15
 
18
16
  require 'vagrant-vbguest/hosts/base'
@@ -24,6 +22,7 @@ require 'vagrant-vbguest/installers/linux'
24
22
  require 'vagrant-vbguest/installers/debian'
25
23
  require 'vagrant-vbguest/installers/ubuntu'
26
24
  require 'vagrant-vbguest/installers/redhat'
25
+ require 'vagrant-vbguest/installers/centos'
27
26
  require 'vagrant-vbguest/installers/oracle'
28
27
  require 'vagrant-vbguest/installers/fedora'
29
28
  require 'vagrant-vbguest/installers/opensuse'
data/locales/en.yml CHANGED
@@ -27,7 +27,7 @@ en:
27
27
  unknown: unknown
28
28
 
29
29
  status:
30
- clean: "[%{vm_name}] No installation found."
30
+ clean: "[%{vm_name}] No Virtualbox Guest Additions installation found."
31
31
  unmatched: "[%{vm_name}] GuestAdditions versions on your host (%{host_version}) and guest (%{guest_version}) do not match."
32
32
  not_running: "[%{vm_name}] GuestAdditions seems to be installed (%{guest_version}) correctly, but not running."
33
33
  ok: "[%{vm_name}] GuestAdditions %{guest_version} running --- OK."
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.16.0
4
+ version: 0.17.0.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: 2018-09-04 00:00:00.000000000 Z
11
+ date: 2018-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: micromachine
@@ -69,16 +69,17 @@ files:
69
69
  - lib/vagrant-vbguest.rb
70
70
  - lib/vagrant-vbguest/command.rb
71
71
  - lib/vagrant-vbguest/config.rb
72
- - lib/vagrant-vbguest/core_ext/string/interpolate.rb
73
72
  - lib/vagrant-vbguest/download.rb
74
73
  - lib/vagrant-vbguest/errors.rb
75
- - lib/vagrant-vbguest/helpers.rb
76
74
  - lib/vagrant-vbguest/helpers/os_release.rb
75
+ - lib/vagrant-vbguest/helpers/rebootable.rb
76
+ - lib/vagrant-vbguest/helpers/vm_compatible.rb
77
77
  - lib/vagrant-vbguest/hosts/base.rb
78
78
  - lib/vagrant-vbguest/hosts/virtualbox.rb
79
79
  - lib/vagrant-vbguest/installer.rb
80
80
  - lib/vagrant-vbguest/installers/archlinux.rb
81
81
  - lib/vagrant-vbguest/installers/base.rb
82
+ - lib/vagrant-vbguest/installers/centos.rb
82
83
  - lib/vagrant-vbguest/installers/debian.rb
83
84
  - lib/vagrant-vbguest/installers/fedora.rb
84
85
  - lib/vagrant-vbguest/installers/linux.rb
@@ -89,26 +90,7 @@ files:
89
90
  - lib/vagrant-vbguest/installers/ubuntu.rb
90
91
  - lib/vagrant-vbguest/machine.rb
91
92
  - lib/vagrant-vbguest/middleware.rb
92
- - lib/vagrant-vbguest/rebootable.rb
93
- - lib/vagrant-vbguest/vagrant_compat.rb
94
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/command.rb
95
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/download.rb
96
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/rebootable.rb
97
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_0/vm_compatible.rb
98
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/command.rb
99
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/download.rb
100
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/rebootable.rb
101
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_1/vm_compatible.rb
102
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/command.rb
103
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/download.rb
104
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/rebootable.rb
105
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_2/vm_compatible.rb
106
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/command.rb
107
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/download.rb
108
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/rebootable.rb
109
- - lib/vagrant-vbguest/vagrant_compat/vagrant_1_3/vm_compatible.rb
110
93
  - lib/vagrant-vbguest/version.rb
111
- - lib/vagrant_init.rb
112
94
  - locales/en.yml
113
95
  - vagrant-vbguest.gemspec
114
96
  homepage: https://github.com/dotless-de/vagrant-vbguest
@@ -131,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
113
  version: 1.3.6
132
114
  requirements: []
133
115
  rubyforge_project:
134
- rubygems_version: 2.6.14.1
116
+ rubygems_version: 2.4.5.2
135
117
  signing_key:
136
118
  specification_version: 4
137
119
  summary: A Vagrant plugin to install the VirtualBoxAdditions into the guest VM
@@ -1,110 +0,0 @@
1
- # This backports the Ruby 1.9 String interpolation syntax to Ruby 1.8.
2
- #
3
- # This file is a copy from I18n
4
- # https://github.com/mattetti/i18n/blob/master/lib/i18n/core_ext/string/interpolate.rb
5
- # Copyright (c) 2008 The Ruby I18n team
6
- # It's copied here for the resons given below:
7
- #
8
- # This backport has been shipped with I18n for a number of versions. Meanwhile
9
- # Rails has started to rely on it and we are going to move it to ActiveSupport.
10
- # See https://rails.lighthouseapp.com/projects/8994/tickets/6013-move-19-string-interpolation-syntax-backport-from-i18n-to-activesupport
11
- #
12
- # Once the above patch has been applied to Rails the following code will be
13
- # removed from I18n.
14
-
15
- =begin
16
- heavily based on Masao Mutoh's gettext String interpolation extension
17
- http://github.com/mutoh/gettext/blob/f6566738b981fe0952548c421042ad1e0cdfb31e/lib/gettext/core_ext/string.rb
18
- Copyright (C) 2005-2009 Masao Mutoh
19
- You may redistribute it and/or modify it under the same license terms as Ruby.
20
- =end
21
-
22
- begin
23
- raise ArgumentError if ("a %{x}" % {:x=>'b'}) != 'a b'
24
- rescue ArgumentError
25
- # KeyError is raised by String#% when the string contains a named placeholder
26
- # that is not contained in the given arguments hash. Ruby 1.9 includes and
27
- # raises this exception natively. We define it to mimic Ruby 1.9's behaviour
28
- # in Ruby 1.8.x
29
- class KeyError < IndexError
30
- def initialize(message = nil)
31
- super(message || "key not found")
32
- end
33
- end unless defined?(KeyError)
34
-
35
- # Extension for String class. This feature is included in Ruby 1.9 or later but not occur TypeError.
36
- #
37
- # String#% method which accept "named argument". The translator can know
38
- # the meaning of the msgids using "named argument" instead of %s/%d style.
39
- class String
40
- # For older ruby versions, such as ruby-1.8.5
41
- alias :bytesize :size unless instance_methods.find {|m| m.to_s == 'bytesize'}
42
- alias :interpolate_without_ruby_19_syntax :% # :nodoc:
43
-
44
- INTERPOLATION_PATTERN = Regexp.union(
45
- /%\{(\w+)\}/, # matches placeholders like "%{foo}"
46
- /%<(\w+)>(.*?\d*\.?\d*[bBdiouxXeEfgGcps])/ # matches placeholders like "%<foo>.d"
47
- )
48
-
49
- INTERPOLATION_PATTERN_WITH_ESCAPE = Regexp.union(
50
- /%%/,
51
- INTERPOLATION_PATTERN
52
- )
53
-
54
- # % uses self (i.e. the String) as a format specification and returns the
55
- # result of applying it to the given arguments. In other words it interpolates
56
- # the given arguments to the string according to the formats the string
57
- # defines.
58
- #
59
- # There are three ways to use it:
60
- #
61
- # * Using a single argument or Array of arguments.
62
- #
63
- # This is the default behaviour of the String class. See Kernel#sprintf for
64
- # more details about the format string.
65
- #
66
- # Example:
67
- #
68
- # "%d %s" % [1, "message"]
69
- # # => "1 message"
70
- #
71
- # * Using a Hash as an argument and unformatted, named placeholders.
72
- #
73
- # When you pass a Hash as an argument and specify placeholders with %{foo}
74
- # it will interpret the hash values as named arguments.
75
- #
76
- # Example:
77
- #
78
- # "%{firstname}, %{lastname}" % {:firstname => "Masao", :lastname => "Mutoh"}
79
- # # => "Masao Mutoh"
80
- #
81
- # * Using a Hash as an argument and formatted, named placeholders.
82
- #
83
- # When you pass a Hash as an argument and specify placeholders with %<foo>d
84
- # it will interpret the hash values as named arguments and format the value
85
- # according to the formatting instruction appended to the closing >.
86
- #
87
- # Example:
88
- #
89
- # "%<integer>d, %<float>.1f" % { :integer => 10, :float => 43.4 }
90
- # # => "10, 43.3"
91
- def %(args)
92
- if args.kind_of?(Hash)
93
- dup.gsub(INTERPOLATION_PATTERN_WITH_ESCAPE) do |match|
94
- if match == '%%'
95
- '%'
96
- else
97
- key = ($1 || $2).to_sym
98
- raise KeyError unless args.has_key?(key)
99
- $3 ? sprintf("%#{$3}", args[key]) : args[key]
100
- end
101
- end
102
- elsif self =~ INTERPOLATION_PATTERN
103
- raise ArgumentError.new('one hash required')
104
- else
105
- result = gsub(/%([{<])/, '%%\1')
106
- result.send :'interpolate_without_ruby_19_syntax', args
107
- end
108
- end
109
- end
110
- end
@@ -1,6 +0,0 @@
1
- module VagrantVbguest
2
- module Helpers
3
- end
4
- end
5
-
6
- require 'vagrant-vbguest/helpers/os_release'
@@ -1,39 +0,0 @@
1
- module VagrantVbguest
2
- module Helpers
3
-
4
- module Rebootable
5
- include VmCompatible
6
- def self.included(base)
7
- base.extend(ClassMethods)
8
- end
9
-
10
- @@rebooted = {}
11
-
12
- def rebooted?(vm)
13
- !!@@rebooted[ self.class.vm_id(vm) ]
14
- end
15
-
16
- def reboot?(vm, options)
17
- if rebooted?(vm)
18
- vm.env.ui.error(I18n.t("vagrant_vbguest.restart_loop_guard_activated"))
19
- false
20
- elsif options[:auto_reboot]
21
- vm.env.ui.warn(I18n.t("vagrant_vbguest.restart_vm"))
22
- @@rebooted[ self.class.vm_id(vm) ] = true
23
- else
24
- vm.env.ui.warn(I18n.t("vagrant_vbguest.suggest_restart", :name => vm.name))
25
- false
26
- end
27
- end
28
-
29
- def reboot(vm, options)
30
- raise NotImplementedError
31
- end
32
-
33
- def reboot!(vm, options)
34
- raise NotImplementedError
35
- end
36
- end
37
-
38
- end
39
- end
@@ -1,17 +0,0 @@
1
- require 'vagrant-vbguest/command'
2
- require 'vagrant/command/start_mixins'
3
-
4
- module VagrantVbguest
5
-
6
- class Command < Vagrant::Command::Base
7
- include CommandCommons
8
- include Vagrant::Command::StartMixins
9
-
10
- def check_runable_on(vm)
11
- raise Vagrant::Errors::VMNotCreatedError if !vm.created?
12
- raise Vagrant::Errors::VMInaccessible if !vm.state == :inaccessible
13
- raise Vagrant::Errors::VMNotRunningError if vm.state != :running
14
- end
15
- end
16
-
17
- end
@@ -1,51 +0,0 @@
1
- require 'vagrant-vbguest/download'
2
- module VagrantVbguest
3
- # This implementation is based on Action::Box::Download by vagrant
4
- #
5
- # This adoption does not run as a action/middleware, but is called manually
6
- #
7
- # MIT License - Mitchell Hashimoto and John Bender - https://github.com/mitchellh/vagrant
8
- #
9
- #
10
- #
11
- class Download < DownloadBase
12
-
13
- include Vagrant::Util
14
-
15
- def download!
16
- if instantiate_downloader
17
- File.open(@destination, Platform.tar_file_options) do |destination_file|
18
- @downloader.download!(@source, destination_file)
19
- end
20
- end
21
- @destination
22
- end
23
-
24
- def instantiate_downloader
25
- # Assign to a temporary variable since this is easier to type out,
26
- # since it is used so many times.
27
- classes = [Vagrant::Downloaders::HTTP, Vagrant::Downloaders::File]
28
-
29
- # Find the class to use.
30
- classes.each_index do |i|
31
- klass = classes[i]
32
-
33
- # Use the class if it matches the given URI or if this
34
- # is the last class...
35
- if classes.length == (i + 1) || klass.match?(@source)
36
- @ui.info I18n.t("vagrant_vbguest.download.with", :class => klass.to_s)
37
- @downloader = klass.new(@ui)
38
- break
39
- end
40
- end
41
-
42
- # This line should never be reached, but we'll keep this here
43
- # just in case for now.
44
- raise Errors::BoxDownloadUnknownType if !@downloader
45
-
46
- @downloader.prepare(@source) if @downloader.respond_to?(:prepare)
47
- true
48
- end
49
-
50
- end
51
- end
@@ -1,23 +0,0 @@
1
- require 'vagrant-vbguest/rebootable'
2
-
3
- module VagrantVbguest
4
- module Helpers
5
-
6
- module Rebootable
7
- def reboot(vm, options)
8
- if reboot? vm, options
9
- @env[:action_runner].run(Vagrant::Action::VM::Halt, @env)
10
- @env[:action_runner].run(Vagrant::Action::VM::Boot, @env)
11
- end
12
- end
13
-
14
- # executes the whole reboot process
15
- def reboot!(vm, options)
16
- if reboot? vm, options
17
- vm.reload(options)
18
- end
19
- end
20
- end
21
-
22
- end
23
- end
@@ -1,31 +0,0 @@
1
- module VagrantVbguest
2
- module Helpers
3
- module VmCompatible
4
- def communicate
5
- vm.channel
6
- end
7
-
8
- def driver
9
- vm.driver
10
- end
11
-
12
- def self.included(base)
13
- base.extend(ClassMethods)
14
- end
15
-
16
- module ClassMethods
17
- def vm_id(vm)
18
- vm.uuid
19
- end
20
-
21
- def communicate_to(vm)
22
- vm.channel
23
- end
24
-
25
- def distro_name(vm)
26
- vm.guest.distro_dispatch
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,23 +0,0 @@
1
- require 'vagrant-vbguest/command'
2
- require Vagrant.source_root.join("plugins/commands/up/start_mixins")
3
-
4
- module VagrantVbguest
5
-
6
- class Command < Vagrant.plugin("2", :command)
7
- include CommandCommons
8
- include VagrantPlugins::CommandUp::StartMixins
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
-
15
- def check_runable_on(vm)
16
- raise Vagrant::Errors::VMNotCreatedError if vm.state.id == :not_created
17
- raise Vagrant::Errors::VMInaccessible if vm.state.id == :inaccessible
18
- raise Vagrant::Errors::VMNotRunningError if vm.state.id != :running
19
- raise VagrantVbguest::NoVirtualBoxMachineError if vm.provider.class != VagrantPlugins::ProviderVirtualBox::Provider
20
- end
21
- end
22
-
23
- end
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_0/download", __FILE__)
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_1/command", __FILE__)
@@ -1,18 +0,0 @@
1
- require 'vagrant-vbguest/download'
2
- require "vagrant/util/downloader"
3
-
4
- module VagrantVbguest
5
-
6
- class Download < DownloadBase
7
-
8
- def download!
9
- downloader_options = {}
10
- downloader_options[:ui] = @ui
11
- @ui.info(I18n.t("vagrant_vbguest.download.started", :source => @source))
12
- @downloader = Vagrant::Util::Downloader.new(@source, @destination, downloader_options)
13
- @downloader.download!
14
- end
15
-
16
- end
17
-
18
- end
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_1/rebootable", __FILE__)
@@ -1,15 +0,0 @@
1
- require File.expand_path("../../vagrant_1_1/vm_compatible", __FILE__)
2
- module VagrantVbguest
3
- module Helpers
4
- module VmCompatible
5
- def self.included(base)
6
- base.extend(ClassMethods)
7
- end
8
- module ClassMethods
9
- def distro_name(vm)
10
- vm.guest.name
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_2/command", __FILE__)
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_2/download", __FILE__)
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_2/rebootable", __FILE__)
@@ -1 +0,0 @@
1
- require File.expand_path("../../vagrant_1_2/vm_compatible", __FILE__)
@@ -1,21 +0,0 @@
1
- vagrant_version = Gem::Version.new(Vagrant::VERSION)
2
- supported_version = {
3
- "< 1.1.0" => "1_0",
4
- "~> 1.1.0" => "1_1",
5
- "~> 1.2.0" => "1_2",
6
- "~> 1.3.0" => "1_3",
7
- }
8
- compat_version = supported_version.find { |requirement, version|
9
- Gem::Requirement.new(requirement).satisfied_by?(vagrant_version)
10
- }
11
-
12
- if compat_version
13
- compat_version = compat_version[1]
14
- else
15
- # @TODO: yield warning
16
- compat_version = supported_version.to_a.last[1]
17
- end
18
-
19
- %w{vm_compatible rebootable command download}.each do |r|
20
- require File.expand_path("../vagrant_compat/vagrant_#{compat_version}/#{r}", __FILE__)
21
- end
data/lib/vagrant_init.rb DELETED
@@ -1,38 +0,0 @@
1
- # This file is automatically loaded by Vagrant < 1.1
2
- # to load any plugins. This file kicks off this plugin.
3
- begin
4
- require "vagrant"
5
- rescue LoadError
6
- raise "The Vagrant VBGuest plugin must be run within Vagrant."
7
- end
8
-
9
- require 'vagrant-vbguest/core_ext/string/interpolate'
10
-
11
- require "vagrant-vbguest/errors"
12
- require 'vagrant-vbguest/vagrant_compat'
13
-
14
- require 'vagrant-vbguest/machine'
15
-
16
- require 'vagrant-vbguest/hosts/base'
17
- require 'vagrant-vbguest/hosts/virtualbox'
18
-
19
- require 'vagrant-vbguest/installer'
20
- require 'vagrant-vbguest/installers/base'
21
- require 'vagrant-vbguest/installers/linux'
22
- require 'vagrant-vbguest/installers/debian'
23
- require 'vagrant-vbguest/installers/ubuntu'
24
- require 'vagrant-vbguest/installers/redhat'
25
-
26
- require 'vagrant-vbguest/config'
27
- require 'vagrant-vbguest/command'
28
- require 'vagrant-vbguest/middleware'
29
-
30
- Vagrant.config_keys.register(:vbguest) { VagrantVbguest::Config }
31
-
32
- Vagrant.commands.register(:vbguest) { VagrantVbguest::Command }
33
-
34
- Vagrant.actions[:start].use VagrantVbguest::Middleware
35
-
36
- # Add our custom translations to the load path
37
- I18n.load_path << File.expand_path("../../locales/en.yml", __FILE__)
38
-