From 87e38a0beda6a227e027188f02b54380e0417bcb Mon Sep 17 00:00:00 2001 From: Gavin Williams Date: Thu, 27 Sep 2018 12:44:18 +0100 Subject: [PATCH] Remove 'config' from ssh.defaults, and instead setup in '.connect' --- plugins/communicators/ssh/communicator.rb | 6 ++++- plugins/kernel_v2/config/ssh.rb | 3 --- .../communicators/ssh/communicator_test.rb | 22 +++++++++++++++++++ .../unit/plugins/kernel_v2/config/ssh_test.rb | 1 - 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/plugins/communicators/ssh/communicator.rb b/plugins/communicators/ssh/communicator.rb index 7f0b171dc..4e7ab4d51 100644 --- a/plugins/communicators/ssh/communicator.rb +++ b/plugins/communicators/ssh/communicator.rb @@ -376,7 +376,7 @@ module VagrantPlugins # Build the options we'll use to initiate the connection via Net::SSH common_connect_opts = { auth_methods: auth_methods, - config: ssh_info[:config], + config: false, forward_agent: ssh_info[:forward_agent], send_env: ssh_info[:forward_env], keys_only: ssh_info[:keys_only], @@ -414,6 +414,10 @@ module VagrantPlugins connect_opts[:proxy] = Net::SSH::Proxy::Command.new(ssh_info[:proxy_command]) end + if ssh_info[:config] + connect_opts[:config] = ssh_info[:config] + end + @logger.info("Attempting to connect to SSH...") @logger.info(" - Host: #{ssh_info[:host]}") @logger.info(" - Port: #{ssh_info[:port]}") diff --git a/plugins/kernel_v2/config/ssh.rb b/plugins/kernel_v2/config/ssh.rb index 07b362ed6..1dc3d51c9 100644 --- a/plugins/kernel_v2/config/ssh.rb +++ b/plugins/kernel_v2/config/ssh.rb @@ -5,7 +5,6 @@ require_relative "ssh_connect" module VagrantPlugins module Kernel_V2 class SSHConfig < SSHConnectConfig - attr_accessor :config attr_accessor :forward_agent attr_accessor :forward_x11 attr_accessor :forward_env @@ -23,7 +22,6 @@ module VagrantPlugins def initialize super - @config = UNSET_VALUE @forward_agent = UNSET_VALUE @forward_x11 = UNSET_VALUE @forward_env = UNSET_VALUE @@ -48,7 +46,6 @@ module VagrantPlugins def finalize! super - @config = false if @config == UNSET_VALUE @forward_agent = false if @forward_agent == UNSET_VALUE @forward_x11 = false if @forward_x11 == UNSET_VALUE @forward_env = false if @forward_env == UNSET_VALUE diff --git a/test/unit/plugins/communicators/ssh/communicator_test.rb b/test/unit/plugins/communicators/ssh/communicator_test.rb index 3b2cb9a32..3c54807c8 100644 --- a/test/unit/plugins/communicators/ssh/communicator_test.rb +++ b/test/unit/plugins/communicators/ssh/communicator_test.rb @@ -748,6 +748,28 @@ describe VagrantPlugins::CommunicatorSSH::Communicator do communicator.send(:connect) end end + + context "with config configured" do + + before do + expect(machine).to receive(:ssh_info).and_return( + host: '127.0.0.1', + port: 2222, + config: './ssh_config', + keys_only: true, + verify_host_key: false + ) + end + + it "has password defined" do + expect(Net::SSH).to receive(:start).with( + anything, anything, hash_including( + config: './ssh_config' + ) + ).and_return(true) + communicator.send(:connect) + end + end end describe ".generate_environment_export" do diff --git a/test/unit/plugins/kernel_v2/config/ssh_test.rb b/test/unit/plugins/kernel_v2/config/ssh_test.rb index 43e6f72b2..d654da450 100644 --- a/test/unit/plugins/kernel_v2/config/ssh_test.rb +++ b/test/unit/plugins/kernel_v2/config/ssh_test.rb @@ -8,7 +8,6 @@ describe VagrantPlugins::Kernel_V2::SSHConfig do describe "#default" do it "defaults to vagrant username" do subject.finalize! - expect(subject.default.config).to be_falsey expect(subject.default.port).to eq(22) expect(subject.default.username).to eq("vagrant") end