From 5ae483ef8569c847a1076e28de1be33d2cefef38 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 7 Jul 2011 10:37:58 -0700 Subject: [PATCH] Provisioners now properly share folders again --- lib/vagrant/action/vm/provision.rb | 9 +++++++-- test/vagrant/action/vm/provision_test.rb | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/vagrant/action/vm/provision.rb b/lib/vagrant/action/vm/provision.rb index 1d711646e..09b10f269 100644 --- a/lib/vagrant/action/vm/provision.rb +++ b/lib/vagrant/action/vm/provision.rb @@ -9,11 +9,16 @@ module Vagrant end def call(env) + # Instantiate and prepare the provisioners. Preparation must happen here + # so that shared folders and such can properly take effect. + provisioners = enabled_provisioners + provisioners.map { |p| p.prepare } + @app.call(env) - enabled_provisioners.each do |instance| + # Take prepared provisioners and run the provisioning + provisioners.each do |instance| @env.ui.info I18n.t("vagrant.actions.vm.provision.beginning", :provisioner => instance.class) - instance.prepare instance.provision! end end diff --git a/test/vagrant/action/vm/provision_test.rb b/test/vagrant/action/vm/provision_test.rb index b9dfcf7f8..446160500 100644 --- a/test/vagrant/action/vm/provision_test.rb +++ b/test/vagrant/action/vm/provision_test.rb @@ -46,10 +46,15 @@ class ProvisionVMActionTest < Test::Unit::TestCase should "provision and continue chain" do provisioners = [mock("one"), mock("two")] seq = sequence("seq") - @app.expects(:call).with(@env).in_sequence(seq) @instance.stubs(:enabled_provisioners).returns(provisioners) + provisioners.each do |prov| prov.expects(:prepare).in_sequence(seq) + end + + @app.expects(:call).with(@env).in_sequence(seq) + + provisioners.each do |prov| prov.expects(:provision!).in_sequence(seq) end