X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Ftest%2FuploadServer%2Fserver.js;fp=skyquake%2Fplugins%2Fcomposer%2Ftest%2FuploadServer%2Fserver.js;h=9b7f40a12da93fddf2be3abc2fb34299afe8af4b;hb=e29efc315df33d546237e270470916e26df391d6;hp=0000000000000000000000000000000000000000;hpb=9c5e457509ba5a1822c316635c6308874e61b4b9;p=osm%2FUI.git diff --git a/skyquake/plugins/composer/test/uploadServer/server.js b/skyquake/plugins/composer/test/uploadServer/server.js new file mode 100644 index 000000000..9b7f40a12 --- /dev/null +++ b/skyquake/plugins/composer/test/uploadServer/server.js @@ -0,0 +1,225 @@ + +/* + * + * Copyright 2016 RIFT.IO Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +/*Define dependencies.*/ + +var express = require('express'); +var multer = require('multer'); +var cors = require('cors'); +var launchpadServer = express(); +var apiServer = express(); +var done = false; +var path = require('path'); + +/*Configure the multer.*/ + +//apiServer.use(function(req, res, next) { +// res.header('Access-Control-Allow-Origin', '*'); +// res.header('Access-Control-Allow-Headers', '*'); +// next(); +//}); + +var uploadPayload = { + "events": [ + { + "timestamp": 1445452293.688965, + "value": "onboard-started", + "text": "onboarding process started" + }, + { + "timestamp": 1445452293.7836523, + "value": "onboard-pkg-upload", + "text": "uploading package" + }, + { + "timestamp": 1445452293.8315961, + "value": "onboard-img-upload", + "text": "uploading image" + }, + { + "timestamp": 1445452293.8316283, + "value": "onboard-dsc-validation", + "text": "descriptor validation" + }, + { + "timestamp": 1445452294.00448, + "value": "onboard-success", + "text": "onboarding process completed" + } + ], + "warnings": [], + "status": "success", + "errors": [ + { + "value": "onboard vnfd/ping_vnfd.xml", + "timestamp": 1445452294.0032463 + } + ] +}; + +var updatePayload = { + "events": [ + { + "timestamp": 1445452293.688965, + "value": "update-started", + "text": "updating process started" + }, + { + "timestamp": 1445452293.7836523, + "value": "update-pkg-upload", + "text": "uploading package" + }, + { + "timestamp": 1445452293.8315961, + "value": "update-img-upload", + "text": "uploading image" + }, + { + "timestamp": 1445452293.8316283, + "value": "update-dsc-validation", + "text": "descriptor validation" + }, + { + "timestamp": 1445452294.00448, + "value": "update-success", + "text": "updating process completed" + } + ], + "warnings": [], + "status": "success", + "errors": [ + { + "value": "update vnfd/ping_vnfd.xml", + "timestamp": 1445452294.0032463 + } + ] +}; + +var exportPayload = { + "events": [ + { + "timestamp": 1445452293.688965, + "value": "update-started", + "text": "download process started" + }, + { + "timestamp": 1445452293.7836523, + "value": "update-pkg-upload", + "text": "building package" + }, + { + "timestamp": 1445452293.8315961, + "value": "update-img-upload", + "text": "building image" + }, + { + "timestamp": 1445452293.8316283, + "value": "update-dsc-validation", + "text": "descriptor validation" + }, + { + "timestamp": 1445452294.00448, + "value": "download-success", + "text": "download process completed" + } + ], + "warnings": [], + "status": "success", + "errors": [ + { + "value": "download nsd/ping-pong-nsd.xml", + "timestamp": 1445452294.0032463 + } + ] +}; + +apiServer.use(cors()); +launchpadServer.use(cors()); + +apiServer.use(multer({ + dest: './uploads/', + rename: function (fieldname, filename) { + return filename + '-' + Date.now(); + }, + onFileUploadStart: function (file) { + console.log(file.originalname + ' is starting ...') + }, + onFileUploadComplete: function (file) { + console.log(file.fieldname + ' uploaded to ' + file.path) + done = true; + } +})); + +/*Handling routes.*/ + +launchpadServer.get('/launchpad/catalog', function (req, res) { + res.sendFile(path.join(__dirname, '../../src/assets/ping-pong-catalog.json')); +}); + +launchpadServer.delete('/launchpad/catalog/nsd/:id', function (req, res) { + res.end(); +}); + +launchpadServer.put('/launchpad/catalog/nsd/:id', function (req, res) { + res.end(); +}); + +apiServer.post('/api/upload', function (req, res) { + if (done == true) { + res.end('{"transaction_id": "' + Date.now() + '"}'); + } +}); + +apiServer.get('/api/upload/:transaction_id/state', function (req, res) { + if (done == true) { + console.log('transaction id state request', req.params.transaction_id); + res.end(JSON.stringify(uploadPayload)); + } +}); + +apiServer.post('/api/update', function (req, res) { + if (done == true) { + res.end('{"transaction_id": "' + Date.now() + '"}'); + } +}); + +apiServer.get('/api/update/:transaction_id/state', function (req, res) { + if (done == true) { + console.log('transaction id state request', req.params.transaction_id); + res.end(JSON.stringify(updatePayload)); + } +}); + +apiServer.get('/api/export', function (req, res) { + res.end('{"transaction_id": "' + Date.now() + '"}'); +}); + +apiServer.get('/api/export/:transaction_id/state', function (req, res) { + console.log('transaction id state request', req.params.transaction_id); + res.end(JSON.stringify(exportPayload)); +}); + +/*Run the servers.*/ +launchpadServer.listen(3000, function () { + console.log('LaunchPad Server listening on port 3000'); +}); + +apiServer.listen(4567, function () { + console.log('API Server listening on port 4567'); +});