summaryrefslogtreecommitdiff
path: root/lib/oxidized/input
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/input')
-rw-r--r--lib/oxidized/input/input.rb7
-rw-r--r--lib/oxidized/input/ssh.rb16
-rw-r--r--lib/oxidized/input/telnet.rb25
3 files changed, 25 insertions, 23 deletions
diff --git a/lib/oxidized/input/input.rb b/lib/oxidized/input/input.rb
index e028ce4..d59c4f3 100644
--- a/lib/oxidized/input/input.rb
+++ b/lib/oxidized/input/input.rb
@@ -1,5 +1,12 @@
module Oxidized
class Input
+ RescueFail = [
+ Timeout::Error,
+ Errno::ECONNREFUSED,
+ Errno::ECONNRESET,
+ Errno::EHOSTUNREACH,
+ Errno::EPIPE,
+ ]
class << self
def inherited klass
Oxidized.mgr.loader = { :class => klass }
diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb
index dc90354..b060418 100644
--- a/lib/oxidized/input/ssh.rb
+++ b/lib/oxidized/input/ssh.rb
@@ -2,6 +2,10 @@ module Oxidized
require 'net/ssh'
require 'oxidized/input/cli'
class SSH < Input
+ RescueFail = [
+ Net::SSH::Disconnect,
+ Net::SSH::AuthenticationFailed,
+ ]
include CLI
class NoShell < StandardError; end
@@ -9,14 +13,12 @@ module Oxidized
@node = node
@output = ''
@node.model.cfg['ssh'].each { |cb| instance_exec &cb }
- begin
- @ssh = Net::SSH.start @node.ip, @node.auth[:username],
- :password => @node.auth[:password], :timeout => CFG.timeout
- rescue Timeout::Error, Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::EHOSTUNREACH, Net::SSH::Disconnect
- return false
- end
+ secure = CFG.input[:ssh][:secure]
+ @ssh = Net::SSH.start @node.ip, @node.auth[:username],
+ :password => @node.auth[:password], :timeout => CFG.timeout,
+ :paranoid => secure
open_shell @ssh unless @exec
- not @ssh.closed?
+ @ssh and not @ssh.closed?
end
def cmd cmd, expect=@node.prompt
diff --git a/lib/oxidized/input/telnet.rb b/lib/oxidized/input/telnet.rb
index 26755ca..0ae6877 100644
--- a/lib/oxidized/input/telnet.rb
+++ b/lib/oxidized/input/telnet.rb
@@ -2,6 +2,7 @@ module Oxidized
require 'net/telnet'
require 'oxidized/input/cli'
class Telnet < Input
+ RescueFail = []
include CLI
attr_reader :telnet
@@ -9,28 +10,20 @@ module Oxidized
@node = node
@timeout = CFG.timeout
@node.model.cfg['telnet'].each { |cb| instance_exec &cb }
- begin
- @telnet = Net::Telnet.new 'Host' => @node.ip, 'Waittime' => @timeout,
- 'Model' => @node.model
- expect username
- @telnet.puts @node.auth[:username]
- expect password
- @telnet.puts @node.auth[:password]
- expect @node.prompt
- rescue Timeout::Error, Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::EPIPE, Errno::EHOSTUNREACH
- return false
- end
+ @telnet = Net::Telnet.new 'Host' => @node.ip, 'Waittime' => @timeout,
+ 'Model' => @node.model
+ expect username
+ @telnet.puts @node.auth[:username]
+ expect password
+ @telnet.puts @node.auth[:password]
+ expect @node.prompt
end
def cmd cmd, expect=@node.prompt
Log.debug "Telnet: #{cmd} @#{@node.name}"
args = { 'String' => cmd }
args.merge!({ 'Match' => expect, 'Timeout' => @timeout }) if expect
- begin
- @telnet.cmd args
- rescue Timeout::Error, Errno::ECONNRESET, Errno::EPIPE
- return false
- end
+ @telnet.cmd args
end
def send data