class NetAtlas::Plugin::SNMP
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/netatlas/plugin/snmp.rb, line 11 def initialize(*args) @sessions = {} super *args end
Public Instance Methods
poll(data_source, &block)
click to toggle source
# File lib/netatlas/plugin/snmp.rb, line 17 def poll(data_source, &block) arguments = data_source.arguments ? data_source.arguments.attributes : {:community => "public", :version => "1"} session = @@sessions[data_source.ip_address] ||= SNMP4EM::SNMPv1.new(:host => data_source.ip_address, :community => arguments[:community] || "public", :version => arguments[:version]) oid = Smi.translate(data_source.arguments.oid) request = session.get([oid]) request.callback { |response| block.call :ok, response[oid] } request.errback {|error| puts "SNMP ERROR: #{error.inspect}" puts data_source.attributes.inspect block.call :error, nil } end