vagrant-vbguest 0.6.0.pre2 → 0.6.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
@@ -21,6 +21,7 @@ module VagrantVbguest
|
|
21
21
|
|
22
22
|
opts.on("--do COMMAND", [:start, :rebuild, :install], "Manually `start`, `rebuild` or `install` GueastAdditions.") do |command|
|
23
23
|
options[:_method] = command
|
24
|
+
options[:force] = true
|
24
25
|
end
|
25
26
|
|
26
27
|
opts.on("--status", "Print current GuestAdditions status and exit.") do
|
@@ -28,22 +29,7 @@ module VagrantVbguest
|
|
28
29
|
options[:_rebootable] = false
|
29
30
|
end
|
30
31
|
|
31
|
-
|
32
|
-
# options[:_method] = :start
|
33
|
-
# options[:_rebootable] = false
|
34
|
-
# end
|
35
|
-
|
36
|
-
# opts.on("--rebuild", "Rebuild the existing GuestAdditions.") do
|
37
|
-
# options[:_method] = :rebuild
|
38
|
-
# options[:force] = true
|
39
|
-
# end
|
40
|
-
|
41
|
-
# opts.on("--install", "Install GuestAdditions matching your host system.") do
|
42
|
-
# options[:_method] = :install
|
43
|
-
# options[:force] = true
|
44
|
-
# end
|
45
|
-
|
46
|
-
opts.on("-f", "--force", "Whether to force the installation. (Implied by --install and --rebuild)") do
|
32
|
+
opts.on("-f", "--force", "Whether to force the installation. (Implied by --do start|rebuild|install)") do
|
47
33
|
options[:force] = true
|
48
34
|
end
|
49
35
|
|
@@ -80,11 +66,14 @@ module VagrantVbguest
|
|
80
66
|
|
81
67
|
# Executes a command on a specific VM.
|
82
68
|
def execute_on_vm(vm, options)
|
69
|
+
raise Vagrant::Errors::VMNotCreatedError if !vm.created?
|
70
|
+
raise Vagrant::Errors::VMInaccessible if !vm.state == :inaccessible
|
71
|
+
raise Vagrant::Errors::VMNotRunningError if vm.state != :running
|
72
|
+
|
83
73
|
options = options.clone
|
84
74
|
_method = options.delete(:_method)
|
85
75
|
_rebootable = options.delete(:_rebootable)
|
86
76
|
|
87
|
-
|
88
77
|
options = vm.config.vbguest.to_hash.merge(options)
|
89
78
|
machine = VagrantVbguest::Machine.new(vm, options)
|
90
79
|
status = machine.state
|
@@ -108,9 +108,6 @@ module VagrantVbguest
|
|
108
108
|
#
|
109
109
|
# @return [Installers::Base]
|
110
110
|
def guest_installer
|
111
|
-
raise Vagrant::Errors::VMNotCreatedError if !@vm.created?
|
112
|
-
raise Vagrant::Errors::VMInaccessible if !@vm.state == :inaccessible
|
113
|
-
raise Vagrant::Errors::VMNotRunningError if @vm.state != :running
|
114
111
|
|
115
112
|
@guest_installer ||= if @options[:installer].is_a? Class
|
116
113
|
@options[:installer].new(@vm)
|
@@ -6,6 +6,8 @@ module VagrantVbguest
|
|
6
6
|
attr_reader :installer, :vm, :options
|
7
7
|
|
8
8
|
def initialize vm, options
|
9
|
+
@logger = Log4r::Logger.new("vagrant::plugins::vbguest-machine")
|
10
|
+
@logger.debug("initialize vbguest machine for VM '#{vm.name}' (#{vm.uuid})")
|
9
11
|
@vm = vm
|
10
12
|
@options = options
|
11
13
|
@installer = Installer.new @vm, @options
|
@@ -24,12 +26,18 @@ module VagrantVbguest
|
|
24
26
|
end
|
25
27
|
|
26
28
|
def run
|
27
|
-
runlist = steps
|
28
29
|
current_state = state
|
30
|
+
runlist = steps(current_state)
|
31
|
+
@logger.debug("Runlist for state #{current_state} is: #{runlist}")
|
29
32
|
while (command = runlist.shift)
|
30
|
-
|
33
|
+
@logger.debug("Running command #{command} from runlist")
|
34
|
+
if !self.send(command)
|
35
|
+
vm.ui.error('vagrant.plugins.vbguest.machine_loop_gard', :command => command, :state => current_state)
|
36
|
+
return false
|
37
|
+
end
|
31
38
|
return run if current_state != state
|
32
39
|
end
|
40
|
+
true
|
33
41
|
end
|
34
42
|
|
35
43
|
def install
|
@@ -53,7 +61,7 @@ module VagrantVbguest
|
|
53
61
|
def reboot; @box_machine.trigger :reboot end
|
54
62
|
def reboot?; @box_machine.state == :rebooted end
|
55
63
|
|
56
|
-
def steps
|
64
|
+
def steps(state)
|
57
65
|
case state
|
58
66
|
when :clean, :unmatched
|
59
67
|
[:install]
|
@@ -66,10 +74,13 @@ module VagrantVbguest
|
|
66
74
|
|
67
75
|
def state
|
68
76
|
guest_version = installer.guest_version(true)
|
77
|
+
host_version = installer.host_version
|
78
|
+
running = installer.running?
|
79
|
+
@logger.debug("Current states for VM '#{vm.name}' are : guest_version=#{guest_version} : host_version=#{host_version} : running=#{running}")
|
69
80
|
|
70
81
|
return :clean if !guest_version
|
71
|
-
return :unmatched if
|
72
|
-
return :not_running if !
|
82
|
+
return :unmatched if host_version != guest_version
|
83
|
+
return :not_running if !running
|
73
84
|
return :ok
|
74
85
|
end
|
75
86
|
|
data/locales/en.yml
CHANGED
@@ -12,6 +12,7 @@ en:
|
|
12
12
|
restart_vm: "Restarting VM to apply changes..."
|
13
13
|
suggest_restart: "Guest Additions got installed. However, they seem not be loaded correctly. Please restart the box runing `vagrant reload %{name}`"
|
14
14
|
restart_loop_guard_activated: "Guest Additions will not load, even after reboot."
|
15
|
+
machine_loop_gard: "Could not execute %{command} from current state %{state}. To prevent running in circles, we'll stop."
|
15
16
|
guest_version_reports_differ: |-
|
16
17
|
Got different reports about installed GuestAdditions version:
|
17
18
|
Virtualbox on your host claims: %{driver}
|
data/vagrant-vbguest.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
# specify any dependencies here; for example:
|
20
20
|
# s.add_development_dependency "rspec"
|
21
21
|
# s.add_runtime_dependency "rest-client"
|
22
|
-
s.
|
22
|
+
s.add_dependency "micromachine", "~> 1.0.4"
|
23
|
+
s.add_dependency "log4r", "~> 1.1.9"
|
23
24
|
|
24
25
|
s.add_development_dependency "bundler", ">= 1.2.0"
|
25
26
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-vbguest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.0.
|
4
|
+
version: 0.6.0.pre3
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,24 +9,40 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: micromachine
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 1.0.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.0.4
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: log4r
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.1.9
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
28
44
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
45
|
+
version: 1.1.9
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: bundler
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|