Sha256: d4fa961a9e7248f13c9b00ab95b9bb1a33a030e52eba7b06a2bd41064185fe3d
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
require 'snmpjr/wrappers/transport' require 'snmpjr/response' class Snmpjr class SessionV2C attr_reader :snmp def initialize @snmp = Snmpjr::Wrappers::Snmp.new(Snmpjr::Wrappers::Transport::DefaultUdpTransportMapping.new) end def start @snmp.listen end def send pdu, target begin result = @snmp.send(pdu, target) rescue Exception => error raise RuntimeError.new("#{error.inspect}: #{error_information pdu, target}") end if result.response.nil? raise Snmpjr::TargetTimeoutError.new("Request timed out: #{error_information pdu, target}") else result.response.variable_bindings.map{|vb| construct_response(vb) } end end def close @snmp.close end private def construct_response variable_binding if variable_binding.is_exception Snmpjr::Response.new(oid: variable_binding.oid.to_s, error: variable_binding.variable.to_s) else Snmpjr::Response.new(oid: variable_binding.oid.to_s, value: variable_binding.variable.to_s, type: variable_binding.variable.syntax_string) end end def error_information pdu, target "#{target.address}, OIDs: #{pdu.to_array.map {|binding| binding.oid.to_s }.inspect}" end end class TargetTimeoutError < StandardError end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
snmpjr-0.3.3-java | lib/snmpjr/session_v2c.rb |