From 3877b71983fbaaac5804445dc0f61da903697f41 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 23 Mar 2012 10:00:26 -0400 Subject: [PATCH] Better logging in the SaneDefaults middleware --- lib/vagrant/action/vm/sane_defaults.rb | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/vagrant/action/vm/sane_defaults.rb b/lib/vagrant/action/vm/sane_defaults.rb index 5b27aa041..dd1068d91 100644 --- a/lib/vagrant/action/vm/sane_defaults.rb +++ b/lib/vagrant/action/vm/sane_defaults.rb @@ -1,3 +1,5 @@ +require "log4r" + module Vagrant module Action module VM @@ -6,10 +8,15 @@ module Vagrant # behavior. class SaneDefaults def initialize(app, env) + @logger = Log4r::Logger.new("vagrant::action::vm::sanedefaults") @app = app end def call(env) + # Set the env on an instance variable so we can access it in + # helpers. + @env = env + # Enable the host IO cache on the sata controller. Note that # if this fails then its not a big deal, so we don't raise any # errors. The Host IO cache vastly improves disk IO performance @@ -19,7 +26,7 @@ module Vagrant "--name", "SATA Controller", "--hostiocache", "on" ] - env[:vm].driver.execute_command(command) + attempt_and_log(command, "Enabling the Host I/O cache on the SATA controller...") # Enable the DNS proxy while in NAT mode. This shields the guest # VM from external DNS changs on the host machine. @@ -27,10 +34,23 @@ module Vagrant "modifyvm", env[:vm].uuid, "--natdnsproxy1", "on" ] - env[:vm].driver.execute_command(command) + attempt_and_log(command, "Enable the NAT DNS proxy on adapter 1...") @app.call(env) end + + protected + + # This is just a helper method that executes a single command, logs + # the given string to the log, and also includes the exit status in + # the log message. + # + # @param [Array] command Command to run + # @param [String] log Log message to write. + def attempt_and_log(command, log) + result = @env[:vm].driver.execute_command(command) + @logger.info("#{log} (exit status = #{result.exit_code})") + end end end end