From 2ac632f828150acb1cbb558de460e3aa7a0cea8d Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Tue, 10 Sep 2019 14:15:41 -0700 Subject: [PATCH] providers/docker: Fix usability check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In commit 7980178d194bb21bde2e21858fbc969e4cc7eb3f (#10879) I added a `usable?` class method to `VagrantPlugins::DockerProvider::Provider`. However, commit 34e53a5a4b208edcc3e25c1f0e3aa0ef56e8d8d9 (#10890) incorrectly changed it to an instance method. This rendered it ineffective because it’s called on the class, not an instance. Change it back to a class method. Signed-off-by: Anders Kaseorg --- plugins/providers/docker/provider.rb | 16 ++++++++-------- .../docker/action/connect_networks_test.rb | 1 - .../providers/docker/action/login_test.rb | 1 - .../docker/action/prepare_networks_test.rb | 1 - .../plugins/providers/docker/provider_test.rb | 5 ++++- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/plugins/providers/docker/provider.rb b/plugins/providers/docker/provider.rb index acef00498..5a4779a08 100644 --- a/plugins/providers/docker/provider.rb +++ b/plugins/providers/docker/provider.rb @@ -11,6 +11,14 @@ module VagrantPlugins class Provider < Vagrant.plugin("2", :provider) @@host_vm_mutex = Mutex.new + def self.usable?(raise_error=false) + Driver.new.execute("docker", "version") + true + rescue Vagrant::Errors::CommandUnavailable, Errors::ExecuteError + raise if raise_error + return false + end + def initialize(machine) @logger = Log4r::Logger.new("vagrant::provider::docker") @machine = machine @@ -45,14 +53,6 @@ module VagrantPlugins @driver end - def usable?(raise_error=false) - driver.execute("docker", "version") - true - rescue Vagrant::Errors::CommandUnavailable, Errors::ExecuteError - raise if raise_error - return false - end - # This returns the {Vagrant::Machine} that is our host machine. # It does not perform any action on the machine or verify it is # running. diff --git a/test/unit/plugins/providers/docker/action/connect_networks_test.rb b/test/unit/plugins/providers/docker/action/connect_networks_test.rb index 8d57f1d4b..16b9779cd 100644 --- a/test/unit/plugins/providers/docker/action/connect_networks_test.rb +++ b/test/unit/plugins/providers/docker/action/connect_networks_test.rb @@ -4,7 +4,6 @@ require_relative "../../../../../../plugins/providers/docker/action/connect_netw describe VagrantPlugins::DockerProvider::Action::ConnectNetworks do include_context "unit" - include_context "virtualbox" let(:sandbox) { isolated_environment } diff --git a/test/unit/plugins/providers/docker/action/login_test.rb b/test/unit/plugins/providers/docker/action/login_test.rb index 85b68897b..5ad0d0232 100644 --- a/test/unit/plugins/providers/docker/action/login_test.rb +++ b/test/unit/plugins/providers/docker/action/login_test.rb @@ -4,7 +4,6 @@ require_relative "../../../../../../plugins/providers/docker/action/login" describe VagrantPlugins::DockerProvider::Action::Login do include_context "unit" - include_context "virtualbox" let(:sandbox) { isolated_environment } diff --git a/test/unit/plugins/providers/docker/action/prepare_networks_test.rb b/test/unit/plugins/providers/docker/action/prepare_networks_test.rb index 1a2ccb7eb..953e75b92 100644 --- a/test/unit/plugins/providers/docker/action/prepare_networks_test.rb +++ b/test/unit/plugins/providers/docker/action/prepare_networks_test.rb @@ -3,7 +3,6 @@ require_relative "../../../../../../plugins/providers/docker/action/prepare_netw describe VagrantPlugins::DockerProvider::Action::PrepareNetworks do include_context "unit" - include_context "virtualbox" let(:sandbox) { isolated_environment } diff --git a/test/unit/plugins/providers/docker/provider_test.rb b/test/unit/plugins/providers/docker/provider_test.rb index 64d1f4d6d..3cb6e03cb 100644 --- a/test/unit/plugins/providers/docker/provider_test.rb +++ b/test/unit/plugins/providers/docker/provider_test.rb @@ -21,9 +21,12 @@ describe VagrantPlugins::DockerProvider::Provider do end describe ".usable?" do + subject { described_class } + it "returns true if usable" do + allow(VagrantPlugins::DockerProvider::Driver).to receive(:new).and_return(driver_obj) allow(provider_config).to receive(:compose).and_return(false) - allow(subject.driver).to receive(:execute).with("docker", "version").and_return(true) + allow(driver_obj).to receive(:execute).with("docker", "version").and_return(true) expect(subject).to be_usable end