Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var router = express.Router();
- var mysql = require('mysql');
- var json = require('json');
- var netconf = require('netconf');
- var DB = function(){
- var conn = mysql.createConnection(
- {
- host : '127.0.0.1',
- user : 'user',
- password : 'passwd',
- database : 'schemaname'
- }
- );
- conn.connect(function(err){
- if (err) throw err;
- });
- return conn;
- };
- var getDevices = function(cb){
- var db = DB();
- var q = "SELECT `devices`.`name`,\
- `devices`.`serial`,\
- `devices`.`version`,\
- `devices`.`ip`,\
- `devices`.`platform`,\
- `devices`.`space_hostname`,\
- `devices`.`last_seen`\
- FROM `inventory`.`devices`;";
- db.query(q, function(err, rows, fields) {
- if (err){
- res.json({"error" : err});
- } else {
- cb(rows);
- }
- });
- };
- var getDeviceBySerial = function(serial, cb){
- getDevices(function(devices){
- var result = {};
- for (var i in devices){
- var dev = devices[i];
- if(dev['serial'] == serial){
- result = dev;
- break;
- }
- }
- cb(result);
- });
- };
- router.get('/devices', function(req, res){
- var devices = getDevices(function(devices){
- res.json(devices);
- });
- });
- router.get('/devices/:serial', function(req, res){
- getDeviceBySerial(req.params.serial, function(dev){
- res.json(dev);
- })
- });
- router.get('/devices/:serial/config', function(req, res) {
- getDeviceBySerial(req.params.serial, function (dev) {
- const router = new netconf.Client({
- host: dev['ip'],
- username: 'user',
- password: 'passwd',
- port: 22
- });
- router.raw = true; //this attaches raw text to the reply
- router.open(function (err) {
- if (err) {
- throw(err);
- } else {
- console.log("connected");
- router.rpc('get-configuration' , function (err, reply) {
- //{ 'get-config': { source: { running: null } } }
- if (err) throw(err);
- else {
- var config = reply.rpc_reply.configuration;
- res.json(config);
- }
- });
- }
- });
- });
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement