|
5
|
1 |
snmpget = require('./lib/utils').snmpget
|
|
|
2 |
restify = require('restify')
|
|
7
|
3 |
bunyan = require 'bunyan'
|
|
5
|
4 |
|
|
7
|
5 |
appname = 'snmp2json'
|
|
|
6 |
|
|
|
7 |
log = bunyan.createLogger({name: appname})
|
|
|
8 |
log.level 'debug'
|
|
|
9 |
|
|
|
10 |
server = restify.createServer({name: appname, version: '1.0.0'})
|
|
5
|
11 |
|
|
|
12 |
server.use(restify.acceptParser(server.acceptable))
|
|
|
13 |
server.use(restify.queryParser())
|
|
|
14 |
server.use(restify.bodyParser())
|
|
|
15 |
|
|
|
16 |
server.get('/snmpget/:host/:oid', (req, res, next) ->
|
|
7
|
17 |
log.debug { route: 'snmpget-single', action: 'request', host: req.params.host, oid: req.params.oid }
|
|
5
|
18 |
opts =
|
|
|
19 |
host: req.params.host
|
|
|
20 |
oids: [ req.params.oid ]
|
|
|
21 |
opts.community = req.params.community ? "public"
|
|
7
|
22 |
snmpget(opts, (r) ->
|
|
|
23 |
log.debug { route: 'snmpget-single', action: 'response', host: req.params.host, oid: req.params.oid }
|
|
|
24 |
res.send r
|
|
|
25 |
log.debug { route: 'snmpget-single', action: 'next-call', host: req.params.host, oid: req.params.oid }
|
|
|
26 |
next()
|
|
|
27 |
)
|
|
5
|
28 |
)
|
|
|
29 |
|
|
|
30 |
server.post('/snmpget/:host', (req, res, next) ->
|
|
7
|
31 |
log.debug { route: 'snmpget', action: 'request', host: req.params.host, oidsCount: req.params.oids.length }
|
|
5
|
32 |
opts =
|
|
|
33 |
host: req.params.host
|
|
|
34 |
oids: req.params.oids
|
|
|
35 |
opts.community = req.params.community ? "public"
|
|
7
|
36 |
snmpget(opts, (r) ->
|
|
|
37 |
log.debug { route: 'snmpget', action: 'response', host: req.params.host }
|
|
|
38 |
res.send r
|
|
|
39 |
log.debug { route: 'snmpget', action: 'next-call', host: req.params.host }
|
|
|
40 |
next()
|
|
|
41 |
)
|
|
5
|
42 |
)
|
|
|
43 |
|
|
|
44 |
server.listen(8080, () ->
|
|
7
|
45 |
log.info('%s listening at %s', server.name, server.url))
|