diff --git a/io/snmp/README.md b/io/snmp/README.md index 5fb58999..b228c81d 100644 --- a/io/snmp/README.md +++ b/io/snmp/README.md @@ -18,9 +18,17 @@ Usage SNMP oids fetcher. Can fetch a single or comma separated list of oids. Triggered by any input. +`msg.host` may contain the host. + +`msg.community` may contain the community. + `msg.oid` may contain a comma separated list of oids to search for. (no spaces) -The oids confgured in the edit config will override `msg.oid`. Leave blank if you +The host configured in the edit config will override `msg.host`. Leave blank if you want to use `msg.host` to provide input. + +The community configured in the edit config will override `msg.community`. Leave blank if you want to use `msg.community` to provide input. + +The oids configured in the edit config will override `msg.oid`. Leave blank if you want to use `msg.oid` to provide input. Outputs `msg.payload` containing a table of objects, and the requested `msg.oid`. @@ -29,9 +37,38 @@ Values depends on the oids being requested. ### snmp-table Simple SNMP table oid fetcher. Triggered by any input. + +`msg.host` may contain the host. + +`msg.community` may contain the community. + `msg.oid` may contain the oid of a single table to search for. -The oid confgured in the edit config will override `msg.oid`. Leave blank if you +The host configured in the edit config will override `msg.host`. Leave blank if you want to use `msg.host` to provide input. + +The community configured in the edit config will override `msg.community`. Leave blank if you want to use `msg.community` to provide input. + +The oid configured in the edit config will override `msg.oid`. Leave blank if you +want to use `msg.oid` to provide input. + +Outputs `msg.payload` containing the table of objects, and the requested `msg.oid`. +Values depends on the oids being requested. + +### snmp-subtree + +Simple SNMP oid subtree fetcher. Triggered by any input. + +`msg.host` may contain the host. + +`msg.community` may contain the community. + +`msg.oid` may contain the oid of a single table to search for. + +The host configured in the edit config will override `msg.host`. Leave blank if you want to use `msg.host` to provide input. + +The community configured in the edit config will override `msg.community`. Leave blank if you want to use `msg.community` to provide input. + +The oid configured in the edit config will override `msg.oid`. Leave blank if you want to use `msg.oid` to provide input. Outputs `msg.payload` containing the table of objects, and the requested `msg.oid`. @@ -39,4 +76,20 @@ Values depends on the oids being requested. ### snmp-walker -### snmp-subtree +Simple SNMP oid walker fetcher. Triggered by any input. + +`msg.host` may contain the host. + +`msg.community` may contain the community. + +`msg.oid` may contain the oid of a single table to search for. + +The host configured in the edit config will override `msg.host`. Leave blank if you want to use `msg.host` to provide input. + +The community configured in the edit config will override `msg.community`. Leave blank if you want to use `msg.community` to provide input. + +The oid configured in the edit config will override `msg.oid`. Leave blank if you +want to use `msg.oid` to provide input. + +Outputs `msg.payload` containing the table of objects, and the requested `msg.oid`. +Values depends on the oids being requested. diff --git a/io/snmp/snmp.html b/io/snmp/snmp.html index c0c45574..1621e724 100644 --- a/io/snmp/snmp.html +++ b/io/snmp/snmp.html @@ -28,6 +28,8 @@ @@ -85,6 +87,8 @@ @@ -141,6 +145,8 @@ @@ -199,6 +205,8 @@ diff --git a/io/snmp/snmp.js b/io/snmp/snmp.js index c3e90bf6..a1159ac0 100644 --- a/io/snmp/snmp.js +++ b/io/snmp/snmp.js @@ -12,13 +12,10 @@ module.exports = function(RED) { var node = this; this.on("input",function(msg) { + var host = node.host || msg.host; + var community = node.community || msg.community; var oids = node.oids || msg.oid; if (oids) { - if (msg.host && node.host || msg.community && node.community) { - node.warn(RED._("common.errors.nooverride")); - } - var host = node.host || msg.host; - var community = node.community || msg.community; node.session = snmp.createSession(host, community, {version: node.version}); node.session.get(oids.split(","), function(error, varbinds) { if (error) { @@ -70,18 +67,15 @@ module.exports = function(RED) { } this.on("input",function(msg) { + var host = node.host || msg.host; + var community = node.community || msg.community; var oids = node.oids || msg.oid; if (oids) { msg.oid = oids; - if (msg.host && node.host || msg.community && node.community) { - node.warn(RED._("common.errors.nooverride")); - } - var host = node.host || msg.host; - var community = node.community || msg.community; node.session = snmp.createSession(host, community, {version: node.version}); node.session.table(oids, maxRepetitions, function(error, table) { if (error) { - node.error(error.toString()); + node.error(error.toString(), msg); } else { var indexes = []; @@ -135,7 +129,7 @@ module.exports = function(RED) { function feedCb(varbinds) { for (var i = 0; i < varbinds.length; i++) { if (snmp.isVarbindError(varbinds[i])) { - node.error(snmp.varbindError(varbinds[i])); + node.error(snmp.varbindError(varbinds[i]), msg); } else { //console.log(varbinds[i].oid + "|" + varbinds[i].value); @@ -145,18 +139,15 @@ module.exports = function(RED) { } this.on("input",function(msg) { + var host = node.host || msg.host; + var community = node.community || msg.community; var oids = node.oids || msg.oid; if (oids) { msg.oid = oids; - if (msg.host && node.host || msg.community && node.community) { - node.warn(RED._("common.errors.nooverride")); - } - var host = node.host || msg.host; - var community = node.community || msg.community; node.session = snmp.createSession(host, community, {version: node.version}); node.session.subtree(msg.oid, maxRepetitions, feedCb, function(error) { if (error) { - node.error(error.toString()); + node.error(error.toString(), msg); } else { msg.payload = response; @@ -192,7 +183,7 @@ module.exports = function(RED) { function feedCb(varbinds) { for (var i = 0; i < varbinds.length; i++) { if (snmp.isVarbindError(varbinds[i])) { - node.error(snmp.varbindError(varbinds[i])); + node.error(snmp.varbindError(varbinds[i]), msg); } else { //console.log(varbinds[i].oid + "|" + varbinds[i].value); @@ -204,17 +195,14 @@ module.exports = function(RED) { this.on("input",function(msg) { node.msg = msg; var oids = node.oids || msg.oid; + var host = node.host || msg.host; + var community = node.community || msg.community; if (oids) { msg.oid = oids; - if (msg.host && node.host || msg.community && node.community) { - node.warn(RED._("common.errors.nooverride")); - } - var host = node.host || msg.host; - var community = node.community || msg.community; node.session = snmp.createSession(host, community, {version: node.version}); node.session.walk(msg.oid, maxRepetitions, feedCb, function(error) { if (error) { - node.error(error.toString()); + node.error(error.toString(), msg); } else { msg.payload = response;