Advertisement
Guest User

Untitled

a guest
Feb 10th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. var express = require('express');
  2. var router = express.Router();
  3. var mysql = require('mysql');
  4. var json = require('json');
  5. var netconf = require('netconf');
  6.  
  7. var DB = function(){
  8. var conn = mysql.createConnection(
  9. {
  10. host : '127.0.0.1',
  11. user : 'user',
  12. password : 'passwd',
  13. database : 'schemaname'
  14. }
  15. );
  16. conn.connect(function(err){
  17. if (err) throw err;
  18. });
  19. return conn;
  20. };
  21. var getDevices = function(cb){
  22. var db = DB();
  23. var q = "SELECT `devices`.`name`,\
  24. `devices`.`serial`,\
  25. `devices`.`version`,\
  26. `devices`.`ip`,\
  27. `devices`.`platform`,\
  28. `devices`.`space_hostname`,\
  29. `devices`.`last_seen`\
  30. FROM `inventory`.`devices`;";
  31. db.query(q, function(err, rows, fields) {
  32. if (err){
  33. res.json({"error" : err});
  34. } else {
  35. cb(rows);
  36. }
  37. });
  38. };
  39.  
  40. var getDeviceBySerial = function(serial, cb){
  41. getDevices(function(devices){
  42. var result = {};
  43. for (var i in devices){
  44. var dev = devices[i];
  45. if(dev['serial'] == serial){
  46. result = dev;
  47. break;
  48. }
  49. }
  50. cb(result);
  51. });
  52. };
  53.  
  54. router.get('/devices', function(req, res){
  55. var devices = getDevices(function(devices){
  56. res.json(devices);
  57. });
  58.  
  59. });
  60.  
  61. router.get('/devices/:serial', function(req, res){
  62. getDeviceBySerial(req.params.serial, function(dev){
  63. res.json(dev);
  64. })
  65. });
  66.  
  67. router.get('/devices/:serial/config', function(req, res) {
  68. getDeviceBySerial(req.params.serial, function (dev) {
  69. const router = new netconf.Client({
  70. host: dev['ip'],
  71. username: 'user',
  72. password: 'passwd',
  73. port: 22
  74. });
  75. router.raw = true; //this attaches raw text to the reply
  76. router.open(function (err) {
  77. if (err) {
  78. throw(err);
  79. } else {
  80. console.log("connected");
  81. router.rpc('get-configuration' , function (err, reply) {
  82. //{ 'get-config': { source: { running: null } } }
  83. if (err) throw(err);
  84. else {
  85. var config = reply.rpc_reply.configuration;
  86. res.json(config);
  87. }
  88. });
  89. }
  90. });
  91. });
  92. });
  93.  
  94. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement