equal
deleted
inserted
replaced
17 typeStr[snmpTypes.NoSuchObject] = 'NoSuchObject' |
17 typeStr[snmpTypes.NoSuchObject] = 'NoSuchObject' |
18 typeStr[snmpTypes.NoSuchInstance] = 'NoSuchInstance' |
18 typeStr[snmpTypes.NoSuchInstance] = 'NoSuchInstance' |
19 typeStr[snmpTypes.EndOfMibView] = 'EndOfMibView' |
19 typeStr[snmpTypes.EndOfMibView] = 'EndOfMibView' |
20 typeStr[snmpTypes.PDUBase] = 'PDUBase' |
20 typeStr[snmpTypes.PDUBase] = 'PDUBase' |
21 |
21 |
|
22 ### |
|
23 Converts TimeTicks value to easy-to-use structure. |
|
24 ### |
22 convertTimeTicks = (v) -> |
25 convertTimeTicks = (v) -> |
23 intDiv = (a, b) -> Math.floor(a / b) |
26 intDiv = (a, b) -> Math.floor(a / b) |
24 msec = v % 100 |
27 msec = v % 100 |
25 v = intDiv(v, 100) |
28 v = intDiv(v, 100) |
26 secs = v % 60 |
29 secs = v % 60 |
34 hours: hours |
37 hours: hours |
35 mins: mins |
38 mins: mins |
36 secs: secs |
39 secs: secs |
37 msecs: msec |
40 msecs: msec |
38 |
41 |
39 |
42 ### |
|
43 Processes SNMP result value. |
|
44 ### |
40 processVarBind = (vb) -> |
45 processVarBind = (vb) -> |
41 rv = |
46 rv = |
42 oid: vb.oid.reduce (x,y) -> x+"."+y |
47 oid: "." + vb.oid.reduce (x,y) -> x+"."+y |
43 value: vb.value |
48 value: vb.value |
44 type: vb.type |
49 type: vb.type |
45 typeStr: typeStr[vb.type] ? 'Unknown' |
50 typeStr: typeStr[vb.type] ? 'Unknown' |
46 if (rv.type == snmpTypes.TimeTicks) |
51 if (rv.type == snmpTypes.TimeTicks) |
47 rv.timeTicks = convertTimeTicks(vb.value) |
52 rv.timeTicks = convertTimeTicks(vb.value) |
48 rv |
53 rv |
49 |
54 |
|
55 ### |
|
56 Creates SNMP session and retrieves values for the supplied OIDs. |
|
57 ### |
50 snmpget = (opts, cb) -> |
58 snmpget = (opts, cb) -> |
51 sess = new snmp.Session(opts) |
59 sess = new snmp.Session(opts) |
52 res = [] |
60 res = [] |
53 snmpgetOne = (i) -> |
61 snmpgetOne = (i) -> |
54 if (i < opts.oids.length) |
62 if (i < opts.oids.length) |
65 else |
73 else |
66 sess.close() |
74 sess.close() |
67 cb(res) |
75 cb(res) |
68 snmpgetOne 0 |
76 snmpgetOne 0 |
69 |
77 |
|
78 # Example OIDs (some intentionally wrong). |
70 oids = [ |
79 oids = [ |
71 '.1.3.6.1.2.1.1.1', |
80 '.1.3.6.1.2.1.1.1', |
72 '.1.3.6.1.2.1.1.1.0', |
81 '.1.3.6.1.2.1.1.1.0', |
73 '.1.3.6.1.2.1.1.2.0', |
82 '.1.3.6.1.2.1.1.2.0', |
74 '.1.3.6.1.2.1.1.3.0', |
83 '.1.3.6.1.2.1.1.3.0', |
83 host: process.env.HOST ? "localhost" |
92 host: process.env.HOST ? "localhost" |
84 community: process.env.COMMUNITY ? "public" |
93 community: process.env.COMMUNITY ? "public" |
85 oids: oids |
94 oids: oids |
86 abortOnError: true |
95 abortOnError: true |
87 |
96 |
|
97 ### |
|
98 Do the work |
|
99 ### |
88 snmpget(opts, (res) -> console.log res) |
100 snmpget(opts, (res) -> console.log res) |