provisioners/ansible: review pull request #7752

- Honour `ssh.proxy_command` setting (even when the Docker provider is
  used via a proxy host). Silly configurations may lead to silly
  behaviors, but let's apply the settings...
- Remove condition on `provider_config.connect_via_ssh`, which is
  a provider specific parameter (from vagrant-libvirt provider).
- Add a simple unit test
This commit is contained in:
Gilles Cornu 2016-09-21 23:19:55 +02:00
parent a1d78edaf8
commit e8cf9bb168
No known key found for this signature in database
GPG Key ID: F6BC2CF7E1FE8FFF
2 changed files with 17 additions and 1 deletions

View File

@ -234,7 +234,10 @@ module VagrantPlugins
proxy_cmd += " exec nc %h %p 2>/dev/null" proxy_cmd += " exec nc %h %p 2>/dev/null"
ssh_options << "-o ProxyCommand='#{ proxy_cmd }'" ssh_options << "-o ProxyCommand='#{ proxy_cmd }'"
elsif @machine.ssh_info[:proxy_command] && @machine.provider_config.connect_via_ssh end
# Use an SSH ProxyCommand when corresponding Vagrant setting is defined
if @machine.ssh_info[:proxy_command]
proxy_cmd = @machine.ssh_info[:proxy_command] proxy_cmd = @machine.ssh_info[:proxy_command]
ssh_options << "-o ProxyCommand='#{ proxy_cmd }'" ssh_options << "-o ProxyCommand='#{ proxy_cmd }'"
end end

View File

@ -665,6 +665,19 @@ VF
end end
end end
describe "with an ssh proxy command configured" do
before do
ssh_info[:proxy_command] = "ssh -W %h:%p -q user@remote_libvirt_host"
end
it "sets '-o ProxyCommand' via ANSIBLE_SSH_ARGS" do
expect(Vagrant::Util::Subprocess).to receive(:execute).with { |*args|
cmd_opts = args.last
expect(cmd_opts[:env]['ANSIBLE_SSH_ARGS']).to include("-o ProxyCommand='ssh -W %h:%p -q user@remote_libvirt_host'")
}
end
end
context "with verbose option defined" do context "with verbose option defined" do
%w(vv vvvv).each do |verbose_option| %w(vv vvvv).each do |verbose_option|