| var express = require('express'); |
| var router = express.Router(); |
| var exec = require('child_process').exec; |
| var util = require('util'); |
| var fs = require('fs.extra'); |
| var dbRoutes = require('./dbRoutes'); |
| var csp = require('./csp'); |
| var multer = require('multer'); |
| var bodyParser = require('body-parser'); |
| var sax = require('sax'),strict=true,parser = sax.parser(strict); |
| var async = require('async'); |
| var l_ = require('lodash'); |
| var dateFormat = require('dateformat'); |
| var properties = require(process.env.SDNC_CONFIG_DIR + '/admportal.json'); |
| var vnf = require('./vnf'); |
| var network = require('./network'); |
| var moment = require('moment'); |
| |
| // pass host, username and password to ODL |
| // target host for ODL request |
| var username = properties.odlUser; |
| var password = properties.odlPasswd; |
| var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64'); |
| var host = properties.odlHost; |
| var port = properties.odlPort; |
| |
| var header = {'Host': host, 'Authorization': auth, 'Content-Type': 'application/json'}; |
| var options = { |
| host : host, |
| headers : header, |
| port : port, |
| rejectUnauthorized:false, |
| strictSSL: false |
| }; |
| |
| // multer |
| var unixTime = moment().unix(); |
| var storage = multer.diskStorage({ |
| destination: function (req, file, cb) { |
| cb(null, process.cwd() + '/uploads/') |
| return; |
| }, |
| filename: function (req, file, cb) { |
| console.log('filename'); |
| cb(null, unixTime + "." + file.originalname ) |
| return; |
| } |
| }); |
| |
| var upload = multer({ |
| storage: storage, |
| fileFilter: function(req,file,cb) { |
| var type = file.mimetype; |
| if ( type.indexOf('ms-excel') == -1 ) { |
| return cb(null,false); |
| } |
| cb(null,true); |
| return; |
| } |
| }); |
| |
| router.post('/uploadVnfCsv', csp.checkAuth, upload.array('filename'), function(req, res) |
| { |
| var msgArray = new Array(); |
| var privilegeObj = req.session.loggedInAdmin; |
| var tasks = []; |
| |
| tasks.push ( function(callback) { vnf.go(req,res,callback,''); } ); |
| tasks.push ( function(arg1,arg2,callback) { formatVnfInsertStatement(arg1,arg2,req,res,callback); } ); |
| tasks.push( function(arg1, callback) { dbRoutes.addRow(arg1,req,res,callback); } ); |
| async.waterfall(tasks, function(err,result) |
| { |
| if(err){ |
| msgArray.push(err); |
| dbRoutes.getVnfData(req,res,{code:'failure', msg:msgArray},privilegeObj); |
| return; |
| } |
| else { |
| msgArray.push('Successfully uploaded file.' ); |
| dbRoutes.getVnfData(req,res,{code:'success', msg:msgArray},privilegeObj); |
| return; |
| } |
| }); |
| }); |
| |
| router.post('/uploadNetworkCsv', csp.checkAuth, upload.array('filename'), function(req, res) |
| { |
| console.log('uploadNetworkCsv'); |
| |
| var msgArray = new Array(); |
| var privilegeObj = req.session.loggedInAdmin; |
| var tasks = []; |
| |
| tasks.push ( function(callback) { network.go(req,res,callback,''); } ); |
| tasks.push ( function(arg1,arg2,callback) { formatNetworkInsertStatement(arg1,arg2,req,res,callback); } ); |
| tasks.push( function(arg1, callback) { dbRoutes.addRow(arg1,req,res,callback); } ); |
| async.waterfall(tasks, function(err,result) |
| { |
| if(err){ |
| console.log('ERROR:' + err); |
| msgArray.push(err); |
| dbRoutes.getVnfNetworkData(req,res,{code:'failure', msg:msgArray},privilegeObj); |
| } |
| else { |
| msgArray.push('Successfully uploaded file.' ); |
| dbRoutes.getVnfNetworkData(req,res,{code:'success', msg:msgArray},privilegeObj); |
| } |
| }); |
| }); |
| |
| |
| function formatVnfInsertStatement(content,filename,req,res,callback) |
| { |
| var newstr = JSON.stringify(content); |
| var enc_str = encodeURI(newstr); |
| var sql = "INSERT INTO PRE_LOAD_VNF_DATA " |
| + "(filename,preload_data) VALUES (" |
| + "'"+ filename + "'," |
| + "'" + enc_str + "')"; |
| |
| callback(null,sql); |
| return; |
| } |
| |
| function formatNetworkInsertStatement(content,filename,req,res,callback) |
| { |
| var newstr = JSON.stringify(content); |
| var enc_str = encodeURI(newstr); |
| var sql = "INSERT INTO PRE_LOAD_VNF_NETWORK_DATA " |
| + "(filename,preload_data) VALUES (" |
| + "'"+ filename + "'," |
| + "'" + enc_str + "')"; |
| |
| callback(null,sql); |
| return; |
| } |
| |
| module.exports = router; |