From cc1184abc98fd270ee8fee4925f38de08c908bb8 Mon Sep 17 00:00:00 2001 From: MajesticFalcon Date: Tue, 30 Aug 2016 18:02:00 -0500 Subject: Update Filename and tftp load --- lib/oxidized/input/tftp.rb | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 lib/oxidized/input/tftp.rb (limited to 'lib/oxidized/input/tftp.rb') diff --git a/lib/oxidized/input/tftp.rb b/lib/oxidized/input/tftp.rb new file mode 100644 index 0000000..2a6a088 --- /dev/null +++ b/lib/oxidized/input/tftp.rb @@ -0,0 +1,62 @@ +module Oxidized + require 'timeout' + require 'stringio' + require_relative 'cli' + + class TFTP < Input + RescueFail = { + :debug => [ + #Net::SSH::Disconnect, + ], + :warn => [ + #RuntimeError, + #Net::SSH::AuthenticationFailed, + ], + } + + include Input::CLI + + # TFTP utilizes UDP, there is not a connection. We simply specify an IP and send/receive data. + def connect node + begin + require 'net/tftp' + rescue LoadError + raise OxidizedError, 'net/tftp not found: sudo gem install net-tftp' + end + @node = node + + @node.model.cfg['tftp'].each { |cb| instance_exec(&cb) } + @log = File.open(Oxidized::Config::Log + "/#{@node.ip}-tftp", 'w') if Oxidized.config.input.debug? + @tftp = Net::TFTP.new @node.ip + end + + def cmd file + Oxidized.logger.info file.methods(true) + Oxidized.logger.debug "TFTP: #{file} @ #{@node.name}" + config = StringIO.new + @tftp.getbinary file, config + config.rewind + config.read + end + + + # meh not sure if this is the best way, but perhaps better than not implementing send + def send my_proc + my_proc.call + end + + def output + "" + end + + private + + def disconnect + # TFTP uses UDP, there is no connection to close + #rescue Errno::ECONNRESET, IOError + ensure + @log.close if Oxidized.config.input.debug? + end + + end +end -- cgit v1.2.1 From f9bd7b3b3564d99fb34c82edfc6b779b76496758 Mon Sep 17 00:00:00 2001 From: MajesticFalcon Date: Tue, 30 Aug 2016 18:07:58 -0500 Subject: Remove unnecessary debugging --- lib/oxidized/input/tftp.rb | 1 - 1 file changed, 1 deletion(-) (limited to 'lib/oxidized/input/tftp.rb') diff --git a/lib/oxidized/input/tftp.rb b/lib/oxidized/input/tftp.rb index 2a6a088..c2f3a16 100644 --- a/lib/oxidized/input/tftp.rb +++ b/lib/oxidized/input/tftp.rb @@ -31,7 +31,6 @@ module Oxidized end def cmd file - Oxidized.logger.info file.methods(true) Oxidized.logger.debug "TFTP: #{file} @ #{@node.name}" config = StringIO.new @tftp.getbinary file, config -- cgit v1.2.1 From 5d99baa74881271af4e73a2072325b5959ed9371 Mon Sep 17 00:00:00 2001 From: MajesticFalcon Date: Tue, 30 Aug 2016 18:20:31 -0500 Subject: Update tftp.rb --- lib/oxidized/input/tftp.rb | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) (limited to 'lib/oxidized/input/tftp.rb') diff --git a/lib/oxidized/input/tftp.rb b/lib/oxidized/input/tftp.rb index c2f3a16..18028c6 100644 --- a/lib/oxidized/input/tftp.rb +++ b/lib/oxidized/input/tftp.rb @@ -2,27 +2,19 @@ module Oxidized require 'timeout' require 'stringio' require_relative 'cli' - + + begin + require 'net/tftp' + rescue LoadError + raise OxidizedError, 'net/tftp not found: sudo gem install net-tftp' + end + class TFTP < Input - RescueFail = { - :debug => [ - #Net::SSH::Disconnect, - ], - :warn => [ - #RuntimeError, - #Net::SSH::AuthenticationFailed, - ], - } include Input::CLI # TFTP utilizes UDP, there is not a connection. We simply specify an IP and send/receive data. def connect node - begin - require 'net/tftp' - rescue LoadError - raise OxidizedError, 'net/tftp not found: sudo gem install net-tftp' - end @node = node @node.model.cfg['tftp'].each { |cb| instance_exec(&cb) } @@ -38,21 +30,10 @@ module Oxidized config.read end - - # meh not sure if this is the best way, but perhaps better than not implementing send - def send my_proc - my_proc.call - end - - def output - "" - end - private - + def disconnect # TFTP uses UDP, there is no connection to close - #rescue Errno::ECONNRESET, IOError ensure @log.close if Oxidized.config.input.debug? end -- cgit v1.2.1 From 8473dd0a6df171733ca6c02670ed1e1a5f894b00 Mon Sep 17 00:00:00 2001 From: MajesticFalcon Date: Tue, 30 Aug 2016 18:21:03 -0500 Subject: Update tftp.rb --- lib/oxidized/input/tftp.rb | 1 - 1 file changed, 1 deletion(-) (limited to 'lib/oxidized/input/tftp.rb') diff --git a/lib/oxidized/input/tftp.rb b/lib/oxidized/input/tftp.rb index 18028c6..78164d0 100644 --- a/lib/oxidized/input/tftp.rb +++ b/lib/oxidized/input/tftp.rb @@ -1,5 +1,4 @@ module Oxidized - require 'timeout' require 'stringio' require_relative 'cli' -- cgit v1.2.1