example.coffee
changeset 2 cd4a9319d71d
parent 1 bf13852dc3ab
child 3 edd377ebd4ca
equal deleted inserted replaced
1:bf13852dc3ab 2:cd4a9319d71d
    45     typeStr: typeStr[vb.type] ? 'Unknown'
    45     typeStr: typeStr[vb.type] ? 'Unknown'
    46   if (rv.type == snmpTypes.TimeTicks)
    46   if (rv.type == snmpTypes.TimeTicks)
    47     rv.timeTicks = convertTimeTicks(vb.value)
    47     rv.timeTicks = convertTimeTicks(vb.value)
    48   rv
    48   rv
    49 
    49 
    50 
       
    51 
       
    52 snmpget = (opts, cb) ->
    50 snmpget = (opts, cb) ->
    53   sess = new snmp.Session({host: opts.host, community: opts.community})
    51   sess = new snmp.Session(opts)
    54   res = []
    52   res = []
    55   snmpgetOne = (i) ->
    53   snmpgetOne = (i) ->
    56     if (i < opts.oids.length)
    54     if (i < opts.oids.length)
    57       sess.get({oid: opts.oids[i]}, (err, vbs) ->
    55       oid = opts.oids[i]
       
    56       sess.get({oid: oid}, (err, vbs) ->
    58         if (err)
    57         if (err)
    59           res.push { error: err }
    58           res.push { error: err, oid: oid }
       
    59           if (opts.abortOnError)
       
    60             i = opts.oids.length
    60         else
    61         else
    61           res.push vbs.map(processVarBind)...
    62           res.push vbs.map(processVarBind)...
    62         snmpgetOne ++i
    63         snmpgetOne ++i
    63       )
    64       )
    64     else
    65     else
    65       sess.close()
    66       sess.close()
    66       cb(res)
    67       cb(res)
    67   snmpgetOne 0
    68   snmpgetOne 0
    68 
    69 
    69 oids = [
    70 oids = [
       
    71   '.1.3.6.1.2.1.1.1',
    70   '.1.3.6.1.2.1.1.1.0',
    72   '.1.3.6.1.2.1.1.1.0',
    71   '.1.3.6.1.2.1.1.2.0',
    73   '.1.3.6.1.2.1.1.2.0',
    72   '.1.3.6.1.2.1.1.3.0',
    74   '.1.3.6.1.2.1.1.3.0',
    73   '.1.3.6.1.4.1.9.2.1.57.0',
    75   '.1.3.6.1.4.1.9.2.1.57.0',
    74   '.1.3.6.1.4.1.9.2.1.58.0',
    76   '.1.3.6.1.4.1.9.2.1.58.0',
    79 
    81 
    80 opts =
    82 opts =
    81   host:  process.env.HOST ? "localhost"
    83   host:  process.env.HOST ? "localhost"
    82   community: process.env.COMMUNITY ? "public"
    84   community: process.env.COMMUNITY ? "public"
    83   oids: oids
    85   oids: oids
       
    86   abortOnError: true
    84 
    87 
    85 snmpget(opts, (res) -> console.log res)
    88 snmpget(opts, (res) -> console.log res)