Skip to content

Commit 2fc0723

Browse files
Merge pull request #968 from Durgesh1988/dev
BOTs Summary and Audit Trail Implementation
2 parents d720868 + 37b7caf commit 2fc0723

File tree

8 files changed

+214
-179
lines changed

8 files changed

+214
-179
lines changed

server/app/model/audit-trail/audit-trail.js

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,8 @@ AuditTrailSchema.statics.getAuditTrailList = function(auditTrailQuery,callback){
3535
});
3636
};
3737

38-
AuditTrailSchema.statics.getAuditTrailByStatus = function(auditType,actionStatus,callback){
39-
AuditTrail.find({auditType:auditType,actionStatus:actionStatus}, function(err, auditTrailList) {
40-
if (err) {
41-
logger.error(err);
42-
var error = new Error('Internal server error');
43-
error.status = 500;
44-
return callback(error);
45-
}
46-
return callback(null, auditTrailList);
47-
});
48-
};
49-
50-
51-
AuditTrailSchema.statics.getAuditTrailByType = function(auditType,callback){
52-
AuditTrail.find({auditType:auditType}, function(err, auditTrailList) {
38+
AuditTrailSchema.statics.getAuditTrails = function(queryObj,callback){
39+
AuditTrail.find(queryObj, function(err, auditTrailList) {
5340
if (err) {
5441
logger.error(err);
5542
var error = new Error('Internal server error');

server/app/model/blueprint/blueprint.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1009,7 +1009,7 @@ BlueprintSchema.statics.getBlueprintsByOrgBgProject = function(jsonData, callbac
10091009
};
10101010

10111011

1012-
BlueprintSchema.statics.getBlueprintsServiceDeliveryCheck = function(serviceDeliveryCheck, callback) {
1012+
BlueprintSchema.statics.getAllServiceDeliveryBlueprint = function(serviceDeliveryCheck, callback) {
10131013
this.find({serviceDeliveryCheck:serviceDeliveryCheck}, function(err, blueprints) {
10141014
if (err) {
10151015
callback(err, null);

server/app/model/classes/tasks/tasks.js

Lines changed: 1 addition & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -360,63 +360,6 @@ taskSchema.methods.getPuppetTaskNodes = function() {
360360
return [];
361361
}
362362
};
363-
364-
/*taskSchema.methods.getHistory = function(callback) {
365-
TaskHistory.getHistoryByTaskId(this.id, function(err, tHistories) {
366-
if (err) {
367-
callback(err, null);
368-
return;
369-
}
370-
var checker;
371-
var uniqueResults = [];
372-
if (tHistories && tHistories.length) {
373-
for (var i = 0; i < tHistories.length; ++i) {
374-
if (!checker || comparer(checker, tHistories[i]) != 0) {
375-
checker = tHistories[i];
376-
uniqueResults.push(checker);
377-
}
378-
}
379-
380-
if (uniqueResults.length) {
381-
var hCount = 0;
382-
for (var i = 0; i < uniqueResults.length; i++) {
383-
(function(i) {
384-
if (uniqueResults[i].nodeIds && uniqueResults[i].nodeIds.length) {
385-
instancesDao.getInstancesByIDs(uniqueResults[i].nodeIds, function(err, data) {
386-
hCount++;
387-
if (err) {
388-
return;
389-
}
390-
391-
if (data && data.length) {
392-
var pId = [];
393-
for (var j = 0; j < data.length; j++) {
394-
pId.push(data[j].platformId);
395-
}
396-
uniqueResults[i] = JSON.parse(JSON.stringify(uniqueResults[i]));
397-
uniqueResults[i]['platformId'] = pId;
398-
}
399-
400-
if (uniqueResults.length == hCount) {
401-
return callback(null, uniqueResults);
402-
}
403-
});
404-
} else {
405-
hCount++;
406-
if (uniqueResults.length == hCount) {
407-
return callback(null, uniqueResults);
408-
}
409-
}
410-
})(i);
411-
}
412-
}
413-
414-
} else {
415-
return callback(null, tHistories);
416-
}
417-
});
418-
};*/
419-
420363
taskSchema.methods.getHistory = function(callback) {
421364
TaskHistory.getHistoryByTaskId(this.id, function(err, tHistories) {
422365
if (err) {
@@ -598,7 +541,7 @@ taskSchema.statics.getScriptTypeTask = function(callback){
598541
});
599542
};
600543

601-
taskSchema.statics.getTasksServiceDeliveryCheck = function(serviceDeliveryCheck, callback) {
544+
taskSchema.statics.getAllServiceDeliveryTask = function(serviceDeliveryCheck, callback) {
602545
this.find({serviceDeliveryCheck:serviceDeliveryCheck}, function(err, tasks) {
603546
if (err) {
604547
callback(err, null);

server/app/routes/v1.0/routes_blueprints.js

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,19 @@ var auditTrailService = require('_pr/services/auditTrailService');
2828
module.exports.setRoutes = function(app, sessionVerificationFunc) {
2929
app.all('/blueprints/*', sessionVerificationFunc);
3030

31-
app.get('/blueprints/serviceDelivery', function(req, res) {
32-
var serviceDeliveryCheck = false;
33-
if(req.query.serviceDeliveryCheck &&
34-
(req.query.serviceDeliveryCheck === 'true' || req.query.serviceDeliveryCheck === true)) {
35-
serviceDeliveryCheck = true;
31+
app.get('/blueprints', function(req, res) {
32+
var queryObj = {
33+
serviceDeliveryCheck : req.query.serviceDeliveryCheck === "true" ? true:false,
34+
actionStatus:req.query.actionStatus
3635
}
37-
38-
Blueprints.getBlueprintsServiceDeliveryCheck(serviceDeliveryCheck, function(err, blueprints) {
36+
blueprintService.getAllServiceDeliveryBlueprint(queryObj, function(err,data){
3937
if (err) {
40-
res.status(500).send({
41-
code: 500,
42-
errMessage: "Blueprints fetch failed."
43-
});
44-
return;
38+
return res.status(500).send(err);
39+
} else {
40+
return res.status(200).send(data);
4541
}
46-
res.status(200).send(blueprints);
47-
});
42+
})
4843
});
49-
5044
app.delete('/blueprints/serviceDelivery/:blueprintId', function(req, res) {
5145
Blueprints.removeServiceDeliveryBlueprints(req.params.blueprintId, function(err, data) {
5246
if (err) {

server/app/routes/v1.0/routes_tasks.js

Lines changed: 52 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -38,39 +38,7 @@ var fileIo = require('_pr/lib/utils/fileio');
3838
module.exports.setRoutes = function(app, sessionVerification) {
3939
app.all('/tasks/*', sessionVerification);
4040

41-
app.get('/tasks/serviceDelivery', function(req, res) {
42-
var serviceDeliveryCheck = false;
43-
if (req.query.serviceDeliveryCheck &&
44-
(req.query.serviceDeliveryCheck === 'true' || req.query.serviceDeliveryCheck === true)) {
45-
serviceDeliveryCheck = true;
46-
}
47-
Tasks.getTasksServiceDeliveryCheck(serviceDeliveryCheck, function(err, tasks) {
48-
if (err) {
49-
res.status(500).send({
50-
code: 500,
51-
errMessage: "Task fetch failed."
52-
});
53-
return;
54-
}
55-
res.status(200).send(tasks);
56-
});
57-
});
58-
59-
app.delete('/tasks/serviceDelivery/:taskId', function(req, res) {
60-
Tasks.removeServiceDeliveryTask(req.params.taskId, function(err, data) {
61-
if (err) {
62-
logger.error("Failed to delete service delivery Task", err);
63-
res.send(500, errorResponses.db.error);
64-
return;
65-
}
66-
res.send(200, {
67-
message: "deleted"
68-
});
69-
});
70-
});
71-
7241
app.get('/tasks/history/list/all', function(req, res) {
73-
logger.debug("------------------ ", JSON.stringify(TaskHistory));
7442
TaskHistory.listHistory(function(err, tHistories) {
7543
if (err) {
7644
res.status(500).send(errorResponses.db.error);
@@ -126,7 +94,22 @@ module.exports.setRoutes = function(app, sessionVerification) {
12694
});
12795
});
12896

97+
app.delete('/tasks/serviceDelivery/:taskId', function(req, res) {
98+
Tasks.removeServiceDeliveryTask(req.params.taskId, function(err, data) {
99+
if (err) {
100+
logger.error("Failed to delete service delivery Task", err);
101+
res.send(500, errorResponses.db.error);
102+
return;
103+
}
104+
res.send(200, {
105+
message: "deleted"
106+
});
107+
});
108+
});
109+
110+
129111
app.post('/tasks/:taskId/run', function(req, res) {
112+
130113
var taskId = req.params.taskId;
131114
var user = req.session.user.cn;
132115
var hostProtocol = req.protocol + '://' + req.get('host');
@@ -136,43 +119,11 @@ module.exports.setRoutes = function(app, sessionVerification) {
136119
var cookbookAttributes = req.body.cookbookAttributes;
137120
var botTagServer = req.body.tagServer;
138121

139-
140-
logger.debug('reqbody ======>', JSON.stringify(req.body));
141-
142-
143-
144-
/*Tasks.getTaskById(req.params.taskId, function(err, task) {
145-
146-
if (err) {
147-
logger.error(err);
148-
res.status(500).send(errorResponses.db.error);
149-
return;
150-
}
151-
var blueprintIds = [];
152-
if (task.blueprintIds && task.blueprintIds.length) {
153-
blueprintIds = task.blueprintIds
154-
}
155-
task.execute(req.session.user.cn, req.protocol + '://' + req.get('host'), choiceParam, nexusData, blueprintIds, task.envId, function(err, taskRes, historyData) {
156-
if (err) {
157-
logger.error(err);
158-
res.status(500).send(err);
159-
return;
160-
}
161-
if (historyData) {
162-
taskRes.historyId = historyData.id;
163-
}
164-
logger.debug("taskRes::::: ", JSON.stringify(taskRes));
165-
res.send(taskRes);
166-
});
167-
});
168-
*/
169-
170122
var paramOptions = {
171123
cookbookAttributes: cookbookAttributes,
172124
scriptParams: scriptParams
173125
};
174126

175-
// encrypting script bot params if any
176127
if (paramOptions.scriptParams && paramOptions.scriptParams.length) {
177128
var cryptoConfig = appConfig.cryptoSettings;
178129
var cryptography = new Cryptography(cryptoConfig.algorithm, cryptoConfig.password);
@@ -185,8 +136,6 @@ module.exports.setRoutes = function(app, sessionVerification) {
185136
paramOptions.scriptParams = encryptedParams;
186137
}
187138

188-
189-
190139
taskService.executeTask(taskId, user, hostProtocol, choiceParam, appData, paramOptions, botTagServer, function(err, historyData) {
191140
if (err === 404) {
192141
res.status(404).send("Task not found.");
@@ -524,27 +473,44 @@ module.exports.setRoutes = function(app, sessionVerification) {
524473

525474
function getTaskList(req, res, next) {
526475
var reqData = {};
527-
async.waterfall(
528-
[
529-
530-
function(next) {
531-
apiUtil.paginationRequest(req.query, 'tasks', next);
532-
},
533-
function(paginationReq, next) {
534-
reqData = paginationReq;
535-
Tasks.listTasks(paginationReq, next);
536-
},
537-
function(tasks, next) {
538-
apiUtil.paginationResponse(tasks, reqData, next);
476+
if(req.query.page) {
477+
async.waterfall(
478+
[
479+
function (next) {
480+
apiUtil.paginationRequest(req.query, 'tasks', next);
481+
},
482+
function (paginationReq, next) {
483+
paginationReq['searchColumns'] = ['name', 'orgName', 'bgName', 'projectName', 'envName'];
484+
reqData = paginationReq;
485+
apiUtil.databaseUtil(paginationReq, next);
486+
},
487+
function (queryObj, next) {
488+
Tasks.listTasks(queryObj, next);
489+
},
490+
function (tasks, next) {
491+
apiUtil.paginationResponse(tasks, reqData, next);
492+
}
493+
],
494+
function (err, results) {
495+
if (err) {
496+
return res.status(500).send(err);
497+
} else {
498+
return res.status(200).send(results);
499+
}
500+
});
501+
}else{
502+
var queryObj = {
503+
serviceDeliveryCheck : req.query.serviceDeliveryCheck === "true" ? true:false,
504+
actionStatus:req.query.actionStatus
505+
}
506+
taskService.getAllServiceDeliveryTask(queryObj, function(err,data){
507+
if (err) {
508+
return res.status(500).send(err);
509+
} else {
510+
return res.status(200).send(data);
539511
}
540-
541-
],
542-
function(err, results) {
543-
if (err)
544-
next(err);
545-
else
546-
return res.status(200).send(results);
547-
});
512+
})
513+
}
548514
}
549515

550516
app.post('/tasks/:taskId/update', function(req, res) {

server/app/services/auditTrailService.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ auditTrailService.insertAuditTrail = function insertAuditTrail(auditDetails,audi
4545
envName: auditDetails.envName?auditDetails.envName:auditDetails.environmentName
4646
},
4747
status: actionObj.status,
48+
auditCategory:actionObj.auditCategory,
4849
actionStatus: actionObj.actionStatus,
4950
user: actionObj.catUser,
5051
startedOn: new Date().getTime(),
@@ -197,7 +198,11 @@ auditTrailService.getBOTsSummary = function getBOTsSummary(callback){
197198

198199
},
199200
totalNoOfSuccessBots: function(callback){
200-
auditTrail.getAuditTrailByStatus('BOTs','success',function(err,data){
201+
var query={
202+
auditType:'BOTs',
203+
actionStatus:'success'
204+
};
205+
auditTrail.getAuditTrails(query,function(err,data){
201206
if(err){
202207
callback(err,null);
203208
}
@@ -206,7 +211,11 @@ auditTrailService.getBOTsSummary = function getBOTsSummary(callback){
206211

207212
},
208213
totalNoOfRunningBots: function(callback){
209-
auditTrail.getAuditTrailByStatus('BOTs','running',function(err,data){
214+
var query={
215+
auditType:'BOTs',
216+
actionStatus:'running'
217+
};
218+
auditTrail.getAuditTrails(query,function(err,data){
210219
if(err){
211220
callback(err,null);
212221
}
@@ -215,7 +224,10 @@ auditTrailService.getBOTsSummary = function getBOTsSummary(callback){
215224

216225
},
217226
totalSavedTimeForBots: function(callback){
218-
auditTrail.getAuditTrailByType('BOTs',function(err,botAuditTrail){
227+
var query={
228+
auditType:'BOTs'
229+
};
230+
auditTrail.getAuditTrails(query,function(err,botAuditTrail){
219231
if(err){
220232
callback(err,null);
221233
} else if(botAuditTrail.length > 0){
@@ -238,7 +250,11 @@ auditTrailService.getBOTsSummary = function getBOTsSummary(callback){
238250
});
239251
},
240252
totalNoOfFailedBots: function(callback){
241-
auditTrail.getAuditTrailByStatus('BOTs','failed',function(err,data){
253+
var query={
254+
auditType:'BOTs',
255+
actionStatus:'failed'
256+
};
257+
auditTrail.getAuditTrails(query,function(err,data){
242258
if(err){
243259
callback(err,null);
244260
}

0 commit comments

Comments
 (0)