diff options
| author | ytti <saku@ytti.fi> | 2016-08-31 02:22:34 +0300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-31 02:22:34 +0300 | 
| commit | 42d07c73d0483d35f3dbb93fe4944cc4b95d8192 (patch) | |
| tree | c0647aaeb28902bc960a4749e50e3c884bb0a9d3 /lib/oxidized/input | |
| parent | 5c1173ff1cf130a271267beb1e11a371e6134908 (diff) | |
| parent | 8473dd0a6df171733ca6c02670ed1e1a5f894b00 (diff) | |
Merge pull request #548 from MajesticFalcon/master
Add Alvarion support
Diffstat (limited to 'lib/oxidized/input')
| -rw-r--r-- | lib/oxidized/input/tftp.rb | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/lib/oxidized/input/tftp.rb b/lib/oxidized/input/tftp.rb new file mode 100644 index 0000000..78164d0 --- /dev/null +++ b/lib/oxidized/input/tftp.rb @@ -0,0 +1,41 @@ +module Oxidized +  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 +     +    include Input::CLI +     +    # TFTP utilizes UDP, there is not a connection. We simply specify an IP and send/receive data. +    def connect node +      @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.debug "TFTP: #{file} @ #{@node.name}" +      config = StringIO.new +      @tftp.getbinary file, config +      config.rewind +      config.read +    end +     +    private +     +    def disconnect +      # TFTP uses UDP, there is no connection to close +    ensure +      @log.close if Oxidized.config.input.debug? +    end + +  end +end | 
