diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/oxidized/config.rb | 3 | ||||
| -rw-r--r-- | lib/oxidized/input/ssh.rb | 3 | ||||
| -rw-r--r-- | lib/oxidized/input/telnet.rb | 8 | ||||
| -rw-r--r-- | lib/oxidized/model/ironware.rb | 2 | 
4 files changed, 12 insertions, 4 deletions
| diff --git a/lib/oxidized/config.rb b/lib/oxidized/config.rb index b7fd008..ddfde81 100644 --- a/lib/oxidized/config.rb +++ b/lib/oxidized/config.rb @@ -29,7 +29,8 @@ module Oxidized    CFGS.default.vars          = {}             # could be 'enable'=>'enablePW'    CFGS.default.groups        = {}             # group level configuration -  CFGS.default.input.default = 'ssh, telnet' +  CFGS.default.input.default    = 'ssh, telnet' +  CFGS.default.input.debug      = false # or String for session log file    CFGS.default.input.ssh.secure = false # complain about changed certs    CFGS.default.output.default = 'file'  # file, git diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb index e3fcede..62a31eb 100644 --- a/lib/oxidized/input/ssh.rb +++ b/lib/oxidized/input/ssh.rb @@ -20,6 +20,7 @@ module Oxidized        @output     = ''        @node.model.cfg['ssh'].each { |cb| instance_exec(&cb) }        secure = CFG.input.ssh.secure +      @log = File.open(CFG.input.debug?.to_s + '-ssh', 'w') if CFG.input.debug?        @ssh = Net::SSH.start @node.ip, @node.auth[:username],                              :password => @node.auth[:password], :timeout => CFG.timeout,                              :paranoid => secure @@ -59,12 +60,14 @@ module Oxidized        Timeout::timeout(CFG.timeout) { @ssh.loop }      rescue Errno::ECONNRESET, Net::SSH::Disconnect, IOError      ensure +      @log.close if CFG.input.debug?        (@ssh.close rescue true) unless @ssh.closed?      end      def shell_open ssh        @ses = ssh.open_channel do |ch|          ch.on_data do |_ch, data| +          @log.print data if CFG.input.debug?            @output << data            @output = @node.model.expects @output          end diff --git a/lib/oxidized/input/telnet.rb b/lib/oxidized/input/telnet.rb index d52ebf0..62f361e 100644 --- a/lib/oxidized/input/telnet.rb +++ b/lib/oxidized/input/telnet.rb @@ -10,8 +10,12 @@ module Oxidized        @node    = node        @timeout = CFG.timeout        @node.model.cfg['telnet'].each { |cb| instance_exec(&cb) } -      @telnet  = Net::Telnet.new 'Host' => @node.ip, 'Timeout' => @timeout, -                                 'Model' => @node.model + +      opt = { 'Host' => @node.ip, 'Timeout' => @timeout, +              'Model' => @node.model } +      opt['Output_log'] = CFG.input.debug?.to_s + '-telnet' if CFG.input.debug? + +      @telnet  = Net::Telnet.new opt        expect username        @telnet.puts @node.auth[:username]        expect password diff --git a/lib/oxidized/model/ironware.rb b/lib/oxidized/model/ironware.rb index e501f76..679bdea 100644 --- a/lib/oxidized/model/ironware.rb +++ b/lib/oxidized/model/ironware.rb @@ -26,7 +26,7 @@ class IronWare < Oxidized::Model    end    cfg :telnet, :ssh do -    post_login 'terminal length 0' +    post_login 'skip-page-display'      pre_logout 'exit'    end | 
