var http = require('http'); var https = require('https'); var ArgumentParser = require('argparse').ArgumentParser; var express = require('express'); const stream = require('stream'); var app = express(); var fs = require("fs"); var path = require('path'); var privateKey = fs.readFileSync('cert/private.key', 'utf8'); var certificate = fs.readFileSync('cert/certificate.crt', 'utf8'); var credentials = { key: privateKey, cert: certificate }; var parser = new ArgumentParser({ version: '0.0.1', addHelp: true, description: 'Datarouter simulator' }); parser.addArgument('--tc', { help: 'TC $NoOfTc' }); parser.addArgument('--printtc', { help: 'Print complete usage help', action: 'storeTrue' }); var args = parser.parseArgs(); if (args.tc == "100") { console.log("TC: 100") } if (args.tc == "101") { console.log("TC: 101") //preparations } if (args.tc == "102") { console.log("TC: 102") //preparations } if (args.printtc) { console.log("TC 100: receive all incoming files"); console.log("TC 101: drop/deny first 10 publishing attempt, then receive all"); console.log("TC 102: drop/deny/every second publisging attempt"); process.exit(0); } var bodyParser = require('body-parser') app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) // parse application/vnd.api+json as json app.use(bodyParser.json({ type: 'application/vnd.api+json' })) // parse some custom thing into a Buffer app.use(bodyParser.raw({ limit: 1024 * 1024 * 20, type: 'application/octet-stream' })) // parse an HTML body into a string app.use(bodyParser.text({ type: 'text/html' })) app.get("/", function (req, res) { res.send("ok"); }) app.post('/webapi/feeds/', function (req, res) { res.setHeader('Content-Type', 'application/json'); var feedName = req.body.feedName; console.log(feedName); res.end(JSON.stringify({ "type": "feed", "lastMod": "2019-03-21T16:00:40.489", "status": "VALID", "asprClassification": "unclassified", "feedDescription": "generated for CSIT", "feedId": "3", "feedName": feedName, "feedVersion": "csit", "logURL": "https://dmaap-dr-prov/feedlog/3", "owner": "dgl", "publishURL": "https://dmaap-dr-prov/publish/3", "pubs": [{ "lastMod": "2019-01-24T16:00:40.484", "status": "VALID", "dcaeLocationName": "san-francisco", "feedId": "3", "pubId": "3.4gh53", "username": "tmp_i63w8psh6ycnoqu", "userpwd": "6jkc1uwywrc8q4w" }], "subs": [], "subscribeURL": "https://dmaap-dr-prov/subscribe/3", "suspended": false })); }) var httpServer = http.createServer(app); var httpsServer = https.createServer(credentials, app); var httpPort = 6665 var httpsPort = 6666 httpServer.listen(httpPort); console.log("DR-simulator listening (http) at " + httpPort) httpsServer.listen(httpsPort); console.log("DR-simulator listening (https) at " + httpsPort)