blob: 522c6daa3fdd5001c4f738a5b8bbca3a90c23a12 [file] [log] [blame]
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;