server.coffee
changeset 7 691c46c94ee6
parent 6 cefe9d604286
equal deleted inserted replaced
6:cefe9d604286 7:691c46c94ee6
     1 snmpget = require('./lib/utils').snmpget
     1 snmpget = require('./lib/utils').snmpget
     2 restify = require('restify')
     2 restify = require('restify')
       
     3 bunyan = require 'bunyan'
     3 
     4 
     4 server = restify.createServer({name: 'snmp2json', version: '1.0.0'})
     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 
     6 server.use(restify.acceptParser(server.acceptable))
    12 server.use(restify.acceptParser(server.acceptable))
     7 server.use(restify.queryParser())
    13 server.use(restify.queryParser())
     8 server.use(restify.bodyParser())
    14 server.use(restify.bodyParser())
     9 
    15 
    10 server.get('/snmpget/:host/:oid', (req, res, next) ->
    16 server.get('/snmpget/:host/:oid', (req, res, next) ->
       
    17   log.debug { route: 'snmpget-single', action: 'request', host: req.params.host, oid: req.params.oid }
    11   opts =
    18   opts =
    12     host: req.params.host
    19     host: req.params.host
    13     oids: [ req.params.oid ]
    20     oids: [ req.params.oid ]
    14   opts.community = req.params.community ? "public"
    21   opts.community = req.params.community ? "public"
    15   snmpget(opts, (r) -> res.send r)
    22   snmpget(opts, (r) ->
    16   return next()
    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   )
    17 )
    28 )
    18 
    29 
    19 server.post('/snmpget/:host', (req, res, next) ->
    30 server.post('/snmpget/:host', (req, res, next) ->
       
    31   log.debug { route: 'snmpget', action: 'request', host: req.params.host, oidsCount: req.params.oids.length  }
    20   opts =
    32   opts =
    21     host: req.params.host
    33     host: req.params.host
    22     oids: req.params.oids
    34     oids: req.params.oids
    23   opts.community = req.params.community ? "public"
    35   opts.community = req.params.community ? "public"
    24   snmpget(opts, (r) -> res.send r)
    36   snmpget(opts, (r) ->
    25   return next()
    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   )
    26 )
    42 )
    27 
    43 
    28 server.listen(8080, () ->
    44 server.listen(8080, () ->
    29   console.log('%s listening at %s', server.name, server.url))
    45   log.info('%s listening at %s', server.name, server.url))