X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fapi%2Fcomposer.js;h=a2355ab6a995b80db10b5a39e5841529d6b2503d;hp=ce128609c9f5bdd0434e2310eb631c53c1f61799;hb=261aceaca02982645f0181eca6b9b0ca56c24fa5;hpb=4e7b00465d087292dc6127bc892a5fa3a64365b6 diff --git a/skyquake/plugins/composer/api/composer.js b/skyquake/plugins/composer/api/composer.js index ce128609c..a2355ab6a 100644 --- a/skyquake/plugins/composer/api/composer.js +++ b/skyquake/plugins/composer/api/composer.js @@ -272,7 +272,7 @@ Composer.create = function(req) { }); }); }; -Composer.update = function(req) { +Composer.updateSave = function(req) { var api_server = req.query['api_server']; var catalogType = req.params.catalogType; var id = req.params.id; @@ -301,6 +301,62 @@ Composer.update = function(req) { } }); }); +} + +Composer.update = function(req) { + console.log(' Updating file', req.file.originalname, 'as', req.file.filename); + var api_server = req.query['api_server']; + // dev_download_server is for testing purposes. + // It is the direct IP address of the Node server where the + // package will be hosted. + var download_host = req.query['dev_download_server']; + + if (!download_host) { + download_host = req.protocol + '://' + req.headers.host; + } + var input = { + 'external-url': download_host + '/composer/update/' + req.file.filename, + 'package-type': 'VNFD', + 'package-id': uuid() + } + return new Promise(function(resolve, reject) { + Promise.all([ + rp({ + uri: utils.confdPort(api_server) + '/api/operations/package-update', + method: 'POST', + headers: _.extend({}, constants.HTTP_HEADERS.accept.collection, { + 'Authorization': req.get('Authorization') + }), + forever: constants.FOREVER_ON, + rejectUnauthorized: false, + resolveWithFullResponse: true, + json: true, + body: { + input: input + } + }) + ]).then(function(result) { + var data = {}; + data['transaction_id'] = result[0].body['output']['transaction-id']; + + // Add a status checker on the transaction and then to delete the file later + PackageFileHandler.checkCreatePackageStatusAndHandleFile(req, data['transaction_id'], true); + + // Return status to composer UI to update the status. + resolve({ + statusCode: constants.HTTP_RESPONSE_CODES.SUCCESS.OK, + data: data + }); + }).catch(function(error) { + var res = {}; + console.log('Problem with Composer.upload', error); + res.statusCode = error.statusCode || 500; + res.errorMessage = { + error: 'Failed to upload package ' + req.file.originalname + '. Error: ' + error + }; + reject(res); + }); + }); }; Composer.upload = function(req) { @@ -341,7 +397,7 @@ Composer.upload = function(req) { // Add a status checker on the transaction and then to delete the file later PackageFileHandler.checkCreatePackageStatusAndHandleFile(req, data['transaction_id']); - + // Return status to composer UI to update the status. resolve({ statusCode: constants.HTTP_RESPONSE_CODES.SUCCESS.OK, @@ -358,6 +414,9 @@ Composer.upload = function(req) { }); }); }; + + + Composer.addFile = function(req) { console.log(' Uploading file', req.file.originalname, 'as', req.file.filename); var api_server = req.query['api_server']; @@ -392,7 +451,7 @@ Composer.addFile = function(req) { }) ]).then(function(result) { var data = {}; - data['transaction_id'] = result[0].body['output']['transaction-id']; + data['transaction_id'] = result[0].body['output']['task-id']; resolve({ statusCode: constants.HTTP_RESPONSE_CODES.SUCCESS.OK, data: data