diff --git a/plugins/kernel_v2/config/disk.rb b/plugins/kernel_v2/config/disk.rb index dcce4d5df..0062d8d35 100644 --- a/plugins/kernel_v2/config/disk.rb +++ b/plugins/kernel_v2/config/disk.rb @@ -101,7 +101,7 @@ module VagrantPlugins current = @provider_config.merge(current) if !@provider_config.empty? if current - @provider_config = current[:provider_config] + @provider_config = current else @provider_config = {} end diff --git a/test/unit/plugins/kernel_v2/config/disk_test.rb b/test/unit/plugins/kernel_v2/config/disk_test.rb index 48bec3b78..b05d4f105 100644 --- a/test/unit/plugins/kernel_v2/config/disk_test.rb +++ b/test/unit/plugins/kernel_v2/config/disk_test.rb @@ -115,4 +115,12 @@ describe VagrantPlugins::Kernel_V2::VagrantConfigDisk do assert_invalid end end + + describe "#add_provider_config" do + it "normalizes provider config" do + test_provider_config = {provider__something: "special" } + subject.add_provider_config(test_provider_config) + expect(subject.provider_config).to eq( { provider: {something: "special" }} ) + end + end end diff --git a/test/unit/plugins/kernel_v2/config/vm_test.rb b/test/unit/plugins/kernel_v2/config/vm_test.rb index f556dc222..243759de8 100644 --- a/test/unit/plugins/kernel_v2/config/vm_test.rb +++ b/test/unit/plugins/kernel_v2/config/vm_test.rb @@ -669,6 +669,16 @@ describe VagrantPlugins::Kernel_V2::VMConfig do expect(merged_disks[0].name).to eq("foo") expect(merged_disks[1].name).to eq("bar") end + + it "adds provider config with `__` config form" do + subject.disk(:disk, size: 1000, primary: false, name: "storage", provider__something: "special") + expect(subject.disks[0].provider_config).to eq({:provider=>{:something=>"special"}}) + end + + it "adds provider config with Hash config form" do + subject.disk(:disk, size: 1000, primary: false, name: "storage", provider: {something: "special"}) + expect(subject.disks[0].provider_config).to eq({:provider=>{:something=>"special"}}) + end end describe "#synced_folder(s)" do