diff options
author | ytti <saku@ytti.fi> | 2018-05-04 18:32:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-04 18:32:12 -0700 |
commit | e97a7707c45f30390d721d752d76fdb5d701c72d (patch) | |
tree | c1e00c7a906cf24e64c4a3b2e4dca39348962e84 /spec | |
parent | ab106f3fa79bbe18bcb7bd24d9c2df93a3df4ed8 (diff) | |
parent | 73175e95c253471f7f06dee04f88e76c77204e6c (diff) |
Merge pull request #1318 from wk/resolve-dns
Introduce resolve_dns knob (closes #599)
Diffstat (limited to 'spec')
-rw-r--r-- | spec/input/ssh_spec.rb | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/spec/input/ssh_spec.rb b/spec/input/ssh_spec.rb index 3c33cd8..0a3bd8d 100644 --- a/spec/input/ssh_spec.rb +++ b/spec/input/ssh_spec.rb @@ -8,17 +8,19 @@ describe Oxidized::SSH do Oxidized::Node.any_instance.stubs(:resolve_repo) Oxidized::Node.any_instance.stubs(:resolve_input) Oxidized::Node.any_instance.stubs(:resolve_output) - @node = Oxidized::Node.new(name: 'example.com', - input: 'ssh', - output: 'git', - model: 'junos', - username: 'alma', - password: 'armud', - vars: { ssh_proxy: 'test.com' }) end describe "#connect" do - it "should use proxy command when proxy host given" do + it "should use proxy command when proxy host given and connect by ip if resolve_dns is true" do + Oxidized.config.resolve_dns = true + @node = Oxidized::Node.new(name: 'example.com', + input: 'ssh', + output: 'git', + model: 'junos', + username: 'alma', + password: 'armud', + vars: { ssh_proxy: 'test.com' }) + ssh = Oxidized::SSH.new model = mock @@ -39,5 +41,36 @@ describe Oxidized::SSH do ssh.instance_variable_set("@exec", true) ssh.connect(@node) end + + it "should use proxy command when proxy host given and connect by name if resolve_dns is false" do + Oxidized.config.resolve_dns = false + @node = Oxidized::Node.new(name: 'example.com', + input: 'ssh', + output: 'git', + model: 'junos', + username: 'alma', + password: 'armud', + vars: { ssh_proxy: 'test.com' }) + + ssh = Oxidized::SSH.new + + model = mock + model.expects(:cfg).returns('ssh' => []) + @node.expects(:model).returns(model).at_least_once + + proxy = mock + Net::SSH::Proxy::Command.expects(:new).with("ssh test.com -W %h:%p").returns(proxy) + Net::SSH.expects(:start).with('example.com', 'alma', port: 22, + timeout: Oxidized.config.timeout, + paranoid: Oxidized.config.input.ssh.secure, + keepalive: true, + proxy: proxy, + password: 'armud', + number_of_password_prompts: 0, + auth_methods: %w[none publickey password]) + + ssh.instance_variable_set("@exec", true) + ssh.connect(@node) + end end end |