snmpget = require('./lib/utils').snmpget
restify = require('restify')
bunyan = require 'bunyan'
appname = 'snmp2json'
log = bunyan.createLogger({name: appname})
log.level 'debug'
server = restify.createServer({name: appname, version: '1.0.0'})
server.use(restify.acceptParser(server.acceptable))
server.use(restify.queryParser())
server.use(restify.bodyParser())
server.get('/snmpget/:host/:oid', (req, res, next) ->
log.debug { route: 'snmpget-single', action: 'request', host: req.params.host, oid: req.params.oid }
opts =
host: req.params.host
oids: [ req.params.oid ]
opts.community = req.params.community ? "public"
snmpget(opts, (r) ->
log.debug { route: 'snmpget-single', action: 'response', host: req.params.host, oid: req.params.oid }
res.send r
log.debug { route: 'snmpget-single', action: 'next-call', host: req.params.host, oid: req.params.oid }
next()
)
)
server.post('/snmpget/:host', (req, res, next) ->
log.debug { route: 'snmpget', action: 'request', host: req.params.host, oidsCount: req.params.oids.length }
opts =
host: req.params.host
oids: req.params.oids
opts.community = req.params.community ? "public"
snmpget(opts, (r) ->
log.debug { route: 'snmpget', action: 'response', host: req.params.host }
res.send r
log.debug { route: 'snmpget', action: 'next-call', host: req.params.host }
next()
)
)
server.listen(8080, () ->
log.info('%s listening at %s', server.name, server.url))