vagrant/plugins/providers/virtualbox/action/check_virtualbox.rb

32 lines
1009 B
Ruby

require 'vagrant/util/platform'
module VagrantPlugins
module ProviderVirtualBox
module Action
# Checks that VirtualBox is installed and ready to be used.
class CheckVirtualbox
def initialize(app, env)
@app = app
@logger = Log4r::Logger.new("vagrant::provider::virtualbox")
end
def call(env)
# This verifies that VirtualBox is installed and the driver is
# ready to function. If not, then an exception will be raised
# which will break us out of execution of the middleware sequence.
Driver::Meta.new.verify!
if Vagrant::Util::Platform.windows? && Vagrant::Util::Platform.windows_hyperv_enabled?
@logger.error("Virtualbox and Hyper-V cannot be used together at the same time on Windows and will result in a system crash.")
raise Vagrant::Errors::HypervVirtualBoxError
end
# Carry on.
@app.call(env)
end
end
end
end
end