server.coffee
author Tomas Zeman <tzeman@volny.cz>
Thu, 28 Mar 2013 21:55:07 +0100
changeset 5 2db4f3d512bb
child 6 cefe9d604286
permissions -rw-r--r--
Server prototype
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     1
snmpget = require('./lib/utils').snmpget
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
restify = require('restify')
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
server = restify.createServer({name: 'snmp2json', version: '1.0.0'})
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
server.use(restify.acceptParser(server.acceptable))
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
server.use(restify.queryParser())
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
server.use(restify.bodyParser())
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
server.get('/snmpget/:host/:oid', (req, res, next) ->
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
  opts =
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
    host: req.params.host
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
    oids: [ req.params.oid ]
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
  opts.community = req.params.community ? "public"
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
  utils.snmpget(opts, (r) -> res.send r)
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
  return next()
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
)
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
server.post('/snmpget/:host', (req, res, next) ->
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
  opts =
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
    host: req.params.host
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
    oids: req.params.oids
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
  opts.community = req.params.community ? "public"
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
  snmpget(opts, (r) -> res.send r)
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
  return next()
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
)
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
server.listen(8080, () ->
2db4f3d512bb Server prototype
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
  console.log('%s listening at %s', server.name, server.url))