vagrant-vbguest 0.6.0.pre2 → 0.6.0.pre3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
- # opts.on("--start", "Try to start the GuestAdditions servcice manually.") do
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)
@@ -66,6 +66,7 @@ module VagrantVbguest
66
66
  @guest_version = v[1]
67
67
  end
68
68
  end
69
+ @guest_version
69
70
  end
70
71
 
71
72
 
@@ -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
- self.send(command)
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 installer.host_version != guest_version
72
- return :not_running if !installer.running?
82
+ return :unmatched if host_version != guest_version
83
+ return :not_running if !running
73
84
  return :ok
74
85
  end
75
86
 
@@ -1,3 +1,3 @@
1
1
  module VagrantVbguest
2
- VERSION = "0.6.0.pre2"
2
+ VERSION = "0.6.0.pre3"
3
3
  end
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}
@@ -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.add_runtime_dependency "micromachine"
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.pre2
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-22 00:00:00.000000000 Z
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: '0'
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: '0'
45
+ version: 1.1.9
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: bundler
32
48
  requirement: !ruby/object:Gem::Requirement