From 7980178d194bb21bde2e21858fbc969e4cc7eb3f Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Mon, 27 May 2019 21:39:04 -0700 Subject: [PATCH] providers/docker: Add usability test Signed-off-by: Anders Kaseorg --- plugins/providers/docker/provider.rb | 8 ++++++++ test/unit/support/shared/virtualbox_context.rb | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/plugins/providers/docker/provider.rb b/plugins/providers/docker/provider.rb index 8778abd11..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 diff --git a/test/unit/support/shared/virtualbox_context.rb b/test/unit/support/shared/virtualbox_context.rb index 1909ccdc9..f28ec8420 100644 --- a/test/unit/support/shared/virtualbox_context.rb +++ b/test/unit/support/shared/virtualbox_context.rb @@ -28,6 +28,11 @@ shared_context "virtualbox" do allow(subprocess).to receive(:execute). with("VBoxManage", "showvminfo", kind_of(String), kind_of(Hash)). and_return(subprocess_result(exit_code: 0)) + + # apparently this is also used in docker tests + allow(subprocess).to receive(:execute). + with("docker", "version", an_instance_of(Hash)). + and_return(subprocess_result(exit_code: 0)) end around do |example|