From ca56c913aab88621faedcd7a261f717fe7fd7aac Mon Sep 17 00:00:00 2001 From: Teemu Matilainen Date: Tue, 4 Feb 2014 00:41:11 -0300 Subject: [PATCH] kernel/v2: fix provisioner config with blocks Regression from 10d5416. --- plugins/kernel_v2/config/vm_provisioner.rb | 2 +- test/unit/plugins/kernel_v2/config/vm_test.rb | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/kernel_v2/config/vm_provisioner.rb b/plugins/kernel_v2/config/vm_provisioner.rb index af4222f11..912106137 100644 --- a/plugins/kernel_v2/config/vm_provisioner.rb +++ b/plugins/kernel_v2/config/vm_provisioner.rb @@ -62,7 +62,7 @@ module VagrantPlugins current = @config_class.new current.set_options(options) if options - current.call(@config) if block + block.call(current) if block current = @config.merge(current) if @config @config = current end diff --git a/test/unit/plugins/kernel_v2/config/vm_test.rb b/test/unit/plugins/kernel_v2/config/vm_test.rb index e7af9921c..b24f3a363 100644 --- a/test/unit/plugins/kernel_v2/config/vm_test.rb +++ b/test/unit/plugins/kernel_v2/config/vm_test.rb @@ -8,22 +8,24 @@ describe VagrantPlugins::Kernel_V2::VMConfig do describe "#provision" do it "stores the provisioners" do subject.provision("shell", inline: "foo") - subject.provision("shell", inline: "bar") + subject.provision("shell", inline: "bar") { |s| s.path = "baz" } subject.finalize! r = subject.provisioners expect(r.length).to eql(2) expect(r[0].config.inline).to eql("foo") expect(r[1].config.inline).to eql("bar") + expect(r[1].config.path).to eql("baz") end it "allows provisioner settings to be overriden" do - subject.provision("shell", path: "foo", inline: "foo", id: "s") - subject.provision("shell", inline: "bar", id: "s") + subject.provision("shell", path: "foo", id: "s") { |s| s.inline = "foo" } + subject.provision("shell", inline: "bar", id: "s") { |s| s.args = "bar" } subject.finalize! r = subject.provisioners expect(r.length).to eql(1) + expect(r[0].config.args).to eql("bar") expect(r[0].config.inline).to eql("bar") expect(r[0].config.path).to eql("foo") end