Module: SnmpHelper

Included in:
TmcHelpers
Defined in:
lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb

Instance Method Summary collapse

Instance Method Details

#snmp_get(host, object, args = {}) ⇒ Object

Public: Gets the specified SNMP object.

host - String hostname or IP. object - String object OID to retrieve. port - Integer SNMP port (default: 161). trap_port - Integer SNMP trap port (default: 162). community - String SNMP community string (default: ‘public’). write_community - String SNMP community string (default: ‘public’). version - Symbol SNMP version (default: :SNMPv2c). timeout - Integer timeout in seconds (default: 1). retries - Integer retries (default: 5). transport - Class SNMP transport (default: UDPTransport). max_recv_bytes - Integer maximum receive bytes (default: 8000). use_IPv6 - Boolean indicating whether to use IPv6 (default: false).

True if :host is formatted like an IPv6 address.

Returns a String of value retrieved.



26
27
28
29
30
31
32
33
# File 'lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb', line 26

def snmp_get(host, object, args={})
  logger.debug("SNMP get: #{host}#{args[:port].nil? ? '' : ":#{args[:port]}"} #{object.inspect}")
  with_snmp_mgr(host, args) do |manager|
    result = manager.get([object]).each_varbind.map {|vb| vb.value.to_s}.first
    logger.debug("Result: #{result.inspect}")
    result
  end
end

#snmp_set(host, object, value, args = {}) ⇒ Object

Public: Sets the specified SNMP object.

host - String hostname or IP. object - String object OID to set. value - String value to set. port - Integer SNMP port (default: 161). trap_port - Integer SNMP trap port (default: 162). community - String SNMP community string (default: ‘public’). write_community - String SNMP community string (default: ‘public’). version - Symbol SNMP version (default: :SNMPv2c). timeout - Integer timeout in seconds (default: 1). retries - Integer retries (default: 5). transport - Class SNMP transport (default: UDPTransport). max_recv_bytes - Integer maximum receive bytes (default: 8000). use_IPv6 - Boolean indicating whether to use IPv6 (default: false).

True if :host is formatted like an IPv6 address.

Returns the result.



53
54
55
56
57
58
59
60
61
# File 'lib/helpers/tmc_helpers/snmp_helper/snmp_helper.rb', line 53

def snmp_set(host, object, value, args={})
  logger.debug("SNMP set: #{host}#{args[:port].nil? ? '' : ":#{args[:port]}"} #{object.inspect} => #{value.inspect}")
  with_snmp_mgr(host, args) do |manager|
    varbind = VarBind.new(object, OctetString.new(value))
    ret = manager.set(varbind)
    logger.debug("Result: #{ret.inspect}")
    ret
  end
end