1 var request
= require('request');
2 var Promise
= require('bluebird');
3 var rp
= require('request-promise');
4 var utils
= require('../../../framework/core/api_utils/utils.js');
5 var constants
= require('../../../framework/core/api_utils/constants.js');
6 var fs
= require('fs');
7 var _
= require('lodash');
9 var PackageFileHandler
= {};
11 function deleteFile(filename
) {
12 setTimeout(function() {
14 fs
.unlinkSync(constants
.BASE_PACKAGE_UPLOAD_DESTINATION
+ '/' + filename
);
16 console
.log("file delete error", e
);
18 }, constants
.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS
);
21 function checkStatus(req
, transactionId
, jobType
) {
22 var api_server
= req
.query
["api_server"];
23 var uri
= utils
.confdPort(api_server
);
24 var id
= req
.params
['id'];
25 var jobName
= jobType
+ '-jobs';
26 var url
= utils
.projectContextUrl(req
, uri
+ '/api/operational/' + jobName
+ (transactionId
? '/job/' + transactionId
: ''));
30 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
31 'Authorization': req
.session
&& req
.session
.authorization
33 forever
: constants
.FOREVER_ON
,
34 rejectUnauthorized
: false
35 }, function(error
, response
, body
) {
37 console
.log('Error checking status for transaction', transactionId
, '. Will delete file', req
.file
.filename
, ' in ', constants
.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS
,' milliseconds');
38 deleteFile(req
.file
.filename
);
40 var jsonStatus
= null;
41 if (typeof body
== 'string' || body
instanceof String
) {
42 try {jsonStatus
= JSON
.parse(body
)['rw-pkg-mgmt:job'];} catch(e
) {jsonStatus
= {status
: 'failure'}}
47 if (jsonStatus
&& jsonStatus
.status
&& (jsonStatus
.status
== 'COMPLETED' || jsonStatus
.status
== 'FAILED')) {
48 console
.log('Transaction ', transactionId
, ' completed with status ', jsonStatus
.status
,'. Will delete file', req
.file
.filename
, ' in ', constants
.PACKAGE_FILE_DELETE_DELAY_MILLISECONDS
,' milliseconds');
49 deleteFile(req
.file
.filename
);
51 setTimeout(function() {
52 checkStatus(req
, transactionId
, jobType
);
53 }, constants
.PACKAGE_FILE_ONBOARD_TRANSACTION_STATUS_CHECK_DELAY_MILLISECONDS
);
59 PackageFileHandler
.checkCreatePackageStatusAndHandleFile = function(req
, transactionId
, jobType
) {
60 checkStatus(req
, transactionId
, jobType
);
64 module
.exports
= PackageFileHandler
;