1 var express = require('express');
2 var router = express.Router();
3 var exec = require('child_process').exec;
4 var util = require('util');
5 var fs = require('fs.extra');
6 var dbRoutes = require('./dbRoutes');
7 var csp = require('./csp');
8 var multer = require('multer');
9 var bodyParser = require('body-parser');
10 var sax = require('sax'),strict=true,parser = sax.parser(strict);
11 var async = require('async');
12 var l_ = require('lodash');
13 var dateFormat = require('dateformat');
14 var properties = require(process.env.SDNC_CONFIG_DIR + '/admportal.json');
15 var vnf = require('./vnf');
16 var network = require('./network');
17 var moment = require('moment');
19 // pass host, username and password to ODL
20 // target host for ODL request
21 var username = properties.odlUser;
22 var password = properties.odlPasswd;
23 var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');
24 var host = properties.odlHost;
25 var port = properties.odlPort;
27 var header = {'Host': host, 'Authorization': auth, 'Content-Type': 'application/json'};
32 rejectUnauthorized:false,
37 var unixTime = moment().unix();
38 var storage = multer.diskStorage({
39 destination: function (req, file, cb) {
40 cb(null, process.cwd() + '/uploads/')
43 filename: function (req, file, cb) {
44 console.log('filename');
45 cb(null, unixTime + "." + file.originalname )
52 fileFilter: function(req,file,cb) {
53 var type = file.mimetype;
54 if ( type.indexOf('ms-excel') == -1 ) {
55 return cb(null,false);
62 router.post('/uploadVnfCsv', csp.checkAuth, upload.array('filename'), function(req, res)
64 var msgArray = new Array();
65 var privilegeObj = req.session.loggedInAdmin;
68 tasks.push ( function(callback) { vnf.go(req,res,callback,''); } );
69 tasks.push ( function(arg1,arg2,callback) { formatVnfInsertStatement(arg1,arg2,req,res,callback); } );
70 tasks.push( function(arg1, callback) { dbRoutes.addRow(arg1,req,res,callback); } );
71 async.waterfall(tasks, function(err,result)
75 dbRoutes.getVnfData(req,res,{code:'failure', msg:msgArray},privilegeObj);
79 msgArray.push('Successfully uploaded file.' );
80 dbRoutes.getVnfData(req,res,{code:'success', msg:msgArray},privilegeObj);
86 router.post('/uploadNetworkCsv', csp.checkAuth, upload.array('filename'), function(req, res)
88 console.log('uploadNetworkCsv');
90 var msgArray = new Array();
91 var privilegeObj = req.session.loggedInAdmin;
94 tasks.push ( function(callback) { network.go(req,res,callback,''); } );
95 tasks.push ( function(arg1,arg2,callback) { formatNetworkInsertStatement(arg1,arg2,req,res,callback); } );
96 tasks.push( function(arg1, callback) { dbRoutes.addRow(arg1,req,res,callback); } );
97 async.waterfall(tasks, function(err,result)
100 console.log('ERROR:' + err);
102 dbRoutes.getVnfNetworkData(req,res,{code:'failure', msg:msgArray},privilegeObj);
105 msgArray.push('Successfully uploaded file.' );
106 dbRoutes.getVnfNetworkData(req,res,{code:'success', msg:msgArray},privilegeObj);
112 function formatVnfInsertStatement(content,filename,req,res,callback)
114 var newstr = JSON.stringify(content);
115 var enc_str = encodeURI(newstr);
116 var sql = "INSERT INTO PRE_LOAD_VNF_DATA "
117 + "(filename,preload_data) VALUES ("
118 + "'"+ filename + "',"
119 + "'" + enc_str + "')";
125 function formatNetworkInsertStatement(content,filename,req,res,callback)
127 var newstr = JSON.stringify(content);
128 var enc_str = encodeURI(newstr);
129 var sql = "INSERT INTO PRE_LOAD_VNF_NETWORK_DATA "
130 + "(filename,preload_data) VALUES ("
131 + "'"+ filename + "',"
132 + "'" + enc_str + "')";
138 module.exports = router;