X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fapi%2FpackageFileHandler.js;h=868a5884509bf589cbec1c501f0670dbecde4be0;hp=cc9cca7c3a5fc472f56751bb94dc5f76cc666670;hb=28412d0042632687d765d239cbb3ff0523a131b9;hpb=f2dc2462571800e62cba969964de621dca09299c diff --git a/skyquake/plugins/composer/api/packageFileHandler.js b/skyquake/plugins/composer/api/packageFileHandler.js index cc9cca7c3..868a58845 100644 --- a/skyquake/plugins/composer/api/packageFileHandler.js +++ b/skyquake/plugins/composer/api/packageFileHandler.js @@ -6,26 +6,30 @@ var constants = require('../../../framework/core/api_utils/constants.js'); var fs = require('fs'); var _ = require('lodash'); -PackageFileHandler = {}; +var PackageFileHandler = {}; function deleteFile(filename) { setTimeout(function() { - fs.unlinkSync(constants.BASE_PACKAGE_UPLOAD_DESTINATION + filename); + try { + fs.unlinkSync(constants.BASE_PACKAGE_UPLOAD_DESTINATION + '/' + filename); + } catch (e) { + console.log("file delete error", e); + } }, constants.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS); }; -function checkStatus(req, transactionId, isUpdate) { - var upload_server = req.query['upload_server']; - var headers = _.extend({}, - { - 'Authorization': req.get('Authorization') - } - ); - var type = isUpdate ? 'update' : 'upload'; +function checkStatus(req, transactionId, jobType) { + var api_server = req.query["api_server"]; + var uri = utils.confdPort(api_server); + var id = req.params['id']; + var jobName = jobType + '-jobs'; + var url = utils.projectContextUrl(req, uri + '/api/operational/' + jobName + (transactionId ? '/job/' + transactionId : '')); request({ - url: upload_server + ':' + constants.PACKAGE_MANAGER_SERVER_PORT + '/api/' + type + '/' + transactionId + '/state', - type: 'GET', - headers: headers, + url: url, + method: 'GET', + headers: _.extend({}, constants.HTTP_HEADERS.accept.data, { + 'Authorization': req.session && req.session.authorization + }), forever: constants.FOREVER_ON, rejectUnauthorized: false }, function(error, response, body) { @@ -35,25 +39,25 @@ function checkStatus(req, transactionId, isUpdate) { } else { var jsonStatus = null; if (typeof body == 'string' || body instanceof String) { - jsonStatus = JSON.parse(body); + try {jsonStatus = JSON.parse(body)['rw-pkg-mgmt:job'];} catch(e) {jsonStatus = {status: 'failure'}} } else { jsonStatus = body; } - if (jsonStatus.status && (jsonStatus.status == 'success' || jsonStatus.status == 'failure')) { + if (jsonStatus && jsonStatus.status && (jsonStatus.status == 'COMPLETED' || jsonStatus.status == 'FAILED')) { console.log('Transaction ', transactionId, ' completed with status ', jsonStatus.status ,'. Will delete file', req.file.filename, ' in ', constants.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS ,' milliseconds'); deleteFile(req.file.filename); } else { setTimeout(function() { - checkStatus(req, transactionId, isUpdate); + checkStatus(req, transactionId, jobType); }, constants.PACKAGE_FILE_ONBOARD_TRANSACTION_STATUS_CHECK_DELAY_MILLISECONDS); } } }); }; -PackageFileHandler.checkCreatePackageStatusAndHandleFile = function(req, transactionId, isUpdate) { - checkStatus(req, transactionId, isUpdate); +PackageFileHandler.checkCreatePackageStatusAndHandleFile = function(req, transactionId, jobType) { + checkStatus(req, transactionId, jobType); };