});
}
+/**
+ * This methods retrieves the status of package operations. It takes an optional
+ * transaction id (id) this if present will return only that status otherwise
+ * an array of status' will be response.
+ */
PackageManager.getJobStatus = function(req) {
var api_server = req.query["api_server"];
var uri = utils.confdPort(api_server);
- var url = '/api/operational/copy-jobs';
var id = req.params['id'];
+ var url = uri + '/api/operational/copy-jobs' + (id ? '/job/' + id : '');
return new Promise(function(resolve, reject) {
request({
- url: uri + url + '?deep',
+ url: url,
method: 'GET',
headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
'Authorization': req.get('Authorization')
}),
forever: constants.FOREVER_ON,
- rejectUnauthorized: false,
+ rejectUnauthorized: false
}, function(error, response, body) {
if (utils.validateResponse('restconfAPI.streams', error, response, body, resolve, reject)) {
- var data = JSON.parse(response.body)['rw-pkg-mgmt:copy-jobs'];
- var returnData = [];
- data && data.job.map(function(d) {
- if(d['transaction-id'] == id) {
- returnData.push(d)
- }
- })
+ var returnData;
+ if (id) {
+ returnData = JSON.parse(response.body)['rw-pkg-mgmt:job'];
+ } else {
+ var data = JSON.parse(response.body)['rw-pkg-mgmt:copy-jobs'];
+ returnData = (data && data.job) || [];
+ }
resolve({
statusCode: response.statusCode,
data: returnData
})
}
+function makeAssetTypeParamName (type) {
+ return type.toLowerCase() + '-file-type';
+}
FileManager.addFile = function(req) {
console.log(' Uploading file', req.file.originalname, 'as', req.file.filename);
var api_server = req.query['api_server'];
var package_id = req.query['package_id'];
var package_type = req.query['package_type'].toUpperCase();
var package_path = req.query['package_path'];
- if (!download_host) {
+ if (!download_host) {
download_host = req.protocol + '://' + req.get('host');//api_server + ':' + utils.getPortForProtocol(req.protocol);
}
var input = {
'external-url': download_host + '/composer/upload/' + req.query['package_id'] + '/' + req.file.filename,
'package-type': package_type,
'package-id': package_id,
- 'package-path': package_path + '/' + req.file.filename
+ 'package-path': package_path ? package_path + '/' + req.file.filename : req.file.filename
}
+ var assetType = req.query['asset_type'].toUpperCase();
+ input[makeAssetTypeParamName(package_type)] = assetType;
return new Promise(function(resolve, reject) {
Promise.all([
rp({
var id = req.query['package_id'];
var downloadUrl = req.query['url'];
var path = req.query['package_path'];
- var payload = {
- "input": {
- "package-type": type,
- "package-id": id
- }
+ var assetType = req.query['asset_type'];
+ var input = {
+ "package-type": type,
+ "package-id": id
}
+ var payload = {input: input};
if(req.method == 'GET') {
if(downloadUrl && path) {
payload.input['external-url'] = downloadUrl;
payload.input['package-path'] = path;
+ payload.input[makeAssetTypeParamName(type)] = assetType;
return download(payload);
} else {
return list(payload);
}
if(req.method == 'DELETE') {
payload.input['package-path'] = path;
+ payload.input[makeAssetTypeParamName(type)] = assetType;
return deleteFile(payload)
}