summaryrefslogtreecommitdiff
path: root/spec/input
diff options
context:
space:
mode:
Diffstat (limited to 'spec/input')
-rw-r--r--spec/input/ssh_spec.rb69
1 files changed, 53 insertions, 16 deletions
diff --git a/spec/input/ssh_spec.rb b/spec/input/ssh_spec.rb
index d86ffa0..0a3bd8d 100644
--- a/spec/input/ssh_spec.rb
+++ b/spec/input/ssh_spec.rb
@@ -8,29 +8,66 @@ 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
+ 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('93.184.216.34', '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
+
+ 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)
+ model = mock
+ model.expects(:cfg).returns('ssh' => [])
+ @node.expects(:model).returns(model).at_least_once
- proxy = mock()
+ proxy = mock
Net::SSH::Proxy::Command.expects(:new).with("ssh test.com -W %h:%p").returns(proxy)
- Net::SSH.expects(:start).with('93.184.216.34', 'alma', {:port => 22, :password => 'armud', :timeout => Oxidized.config.timeout,
- :paranoid => Oxidized.config.input.ssh.secure, :auth_methods => ['none', 'publickey', 'password', 'keyboard-interactive'],
- :number_of_password_prompts => 0, :proxy => 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)