From ca428388d8186aaba694d977520c931a8d8a035f Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 6 May 2014 21:49:49 -0700 Subject: [PATCH] providers/docker: can set default provider to docker [GH-3662] --- CHANGELOG.md | 2 ++ plugins/providers/docker/provider.rb | 5 ++++- test/unit/vagrant/environment_test.rb | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e88b47d1..c53b29787 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ BUG FIXES: - guests/redhat: Fix networking issues with CentOS. [GH-3649] - guests/windows: Human error if WinRM not in use to configure networks. [GH-3651] - providers/docker: Show proper error message when on Linux. [GH-3654] + - providers/docker: Proxy VM works properly even if default provider + environmental variable set to "docker" [GH-3662] - synced\_folders/rsync: Create the directory before syncing. ## 1.6.0 (May 6, 2014) diff --git a/plugins/providers/docker/provider.rb b/plugins/providers/docker/provider.rb index de18a206d..3ec281661 100644 --- a/plugins/providers/docker/provider.rb +++ b/plugins/providers/docker/provider.rb @@ -87,7 +87,10 @@ module VagrantPlugins host_env.machine( host_machine_name, - host_env.default_provider(exclude: [:docker])) + host_env.default_provider( + exclude: [:docker], + force_default: false, + )) end @host_vm diff --git a/test/unit/vagrant/environment_test.rb b/test/unit/vagrant/environment_test.rb index be83d8977..5de1f493e 100644 --- a/test/unit/vagrant/environment_test.rb +++ b/test/unit/vagrant/environment_test.rb @@ -766,6 +766,27 @@ VF end end + it "prefers the default even if not forced" do + plugin_providers[:baz] = [provider_usable_class(true), { priority: 5 }] + plugin_providers[:foo] = [provider_usable_class(true), { priority: 5 }] + plugin_providers[:bar] = [provider_usable_class(true), { priority: 7 }] + + with_temp_env("VAGRANT_DEFAULT_PROVIDER" => "baz") do + expect(subject.default_provider(force_default: false)).to eq(:baz) + end + end + + it "uses the first usable provider that isn't the default if excluded" do + plugin_providers[:foo] = [provider_usable_class(true), { priority: 5 }] + plugin_providers[:bar] = [provider_usable_class(true), { priority: 7 }] + plugin_providers[:baz] = [provider_usable_class(true), { priority: 8 }] + + with_temp_env("VAGRANT_DEFAULT_PROVIDER" => "baz") do + expect(subject.default_provider( + exclude: [:baz], force_default: false)).to eq(:bar) + end + end + it "is VirtualBox if nothing else is usable" do plugin_providers[:foo] = [provider_usable_class(false), { priority: 5 }] plugin_providers[:bar] = [provider_usable_class(false), { priority: 5 }]