From 6ae766e0a688169070f3d5d8aad2593b586785ae Mon Sep 17 00:00:00 2001 From: Durgesh1988 Date: Wed, 4 Jan 2017 19:35:45 +0530 Subject: [PATCH 1/2] CAT-2617 Fixed --- .../catalyst-scheduler/catalystScheduler.js | 60 ++++++++++++++----- server/app/services/botsService.js | 4 +- server/app/services/schedulerService.js | 25 +++++--- server/app/services/taskService.js | 13 ---- 4 files changed, 64 insertions(+), 38 deletions(-) diff --git a/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js b/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js index d05439767..4a1c554dc 100644 --- a/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js +++ b/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js @@ -3,6 +3,7 @@ var instancesDao = require('_pr/model/classes/instance/instance'); var taskDao = require('_pr/model/classes/tasks/tasks.js'); var botsDao = require('_pr/model/bots/bots.js'); var schedulerService = require('_pr/services/schedulerService'); +var auditTrail = require('_pr/model/audit-trail/audit-trail.js'); var async = require('async'); var cronTab = require('node-crontab'); var catalystSync = module.exports = {}; @@ -144,28 +145,37 @@ catalystSync.executeScheduledBots = function executeScheduledBots() { return; } if (bots && bots.length) { - var botsList=[]; + var botsList=[],count = 0; for (var i = 0; i < bots.length; i++) { (function(bot) { - if(bot.cronJobId && bot.cronJobId !== null){ - cronTab.cancelJob(bot.cronJobId); - } - botsList.push(function(callback){schedulerService.executeScheduledBots(bot,callback);}); - if(botsList.length === bots.length){ - if(botsList.length > 0) { - async.parallel(botsList, function (err, results) { - if (err) { - logger.error(err); + var query = { + auditType: 'BOTs', + actionStatus: 'running', + auditId:bot.botId + }; + auditTrail.getAuditTrails(query, function(err,botsAudits){ + if(err){ + logger.error("Failed to fetch running Bots",err); + count++ + return; + }else if(botsAudits.length > 0){ + count++; + }else{ + botsList.push(function(callback){schedulerService.executeScheduledBots(bot,callback);}); + count++; + } + if(count===bots.length){ + executeBots(botsList,function(err,data){ + if(err) { + logger.error("Error while executing BOTs Scheduler"); + return; + }else{ + logger.debug("Bots Scheduler Completed"); return; } - logger.debug("Bots Scheduler Completed"); - return; }) - }else{ - logger.debug("There is no scheduled Bots right now."); - return; } - } + }); })(bots[i]); } }else{ @@ -175,6 +185,24 @@ catalystSync.executeScheduledBots = function executeScheduledBots() { }); } +function executeBots(botsList,callback){ + if(botsList.length > 0) { + async.parallel(botsList, function (err, results) { + if (err) { + logger.error(err); + callback(err,null); + return; + } + callback(null,results); + return; + }) + }else{ + logger.debug("There is no scheduled Bots right now."); + callback(null,botsList); + return; + } +} + function cancelOldCronJobs(ids){ if(ids.length > 0){ var count = 0; diff --git a/server/app/services/botsService.js b/server/app/services/botsService.js index a3dfaf218..f6847d0ee 100644 --- a/server/app/services/botsService.js +++ b/server/app/services/botsService.js @@ -327,7 +327,7 @@ botsService.getPerticularBotsHistory = function getPerticularBotsHistory(botId,h botsService.executeBots = function executeBots(botId,reqBody,callback){ async.waterfall([ function(next){ - if(typeof reqBody !== 'undefined' && reqBody !== null + if(reqBody !== null && reqBody.paramOptions && reqBody.paramOptions.scriptParams && reqBody.paramOptions.scriptParams !== null){ @@ -365,7 +365,7 @@ botsService.executeBots = function executeBots(botId,reqBody,callback){ function(bots,next){ if(bots.length > 0){ if(bots[0].botLinkedCategory === 'Task'){ - if(typeof reqBody === 'undefined') { + if(reqBody === null) { taskService.executeTask(botId, 'system', 'undefined', 'undefined', 'undefined', 'undefined', 'undefined', callback); }else{ taskService.executeTask(botId, reqBody.userName ? reqBody.userName : 'system', reqBody.hostProtocol ? reqBody.hostProtocol : 'undefined', diff --git a/server/app/services/schedulerService.js b/server/app/services/schedulerService.js index 393c5f0a5..e4d0c5801 100644 --- a/server/app/services/schedulerService.js +++ b/server/app/services/schedulerService.js @@ -159,14 +159,25 @@ schedulerService.executeScheduledBots = function executeScheduledBots(bots,callb logger.error("Error in updating cron job Ids. "+err); } }) - botsService.executeBots(bots.botId,bots.runTimeParams,function(err, historyData) { - if (err) { - logger.error("Failed to execute Bots.", err); + if(bots.botLinkedCategory === 'Blueprint') { + botsService.executeBots(bots.botId, bots.runTimeParams, function (err, historyData) { + if (err) { + logger.error("Failed to execute Bots.", err); + return; + } + logger.debug("Bots Execution Success for - ", bots.botName); return; - } - logger.debug("Bots Execution Success for - ", bots.botName); - return; - }); + }); + }else{ + botsService.executeBots(bots.botId,null,function (err, historyData) { + if (err) { + logger.error("Failed to execute Bots.", err); + return; + } + logger.debug("Bots Execution Success for - ", bots.botName); + return; + }); + } }); } } diff --git a/server/app/services/taskService.js b/server/app/services/taskService.js index 0bbeb18d4..106c8d95d 100644 --- a/server/app/services/taskService.js +++ b/server/app/services/taskService.js @@ -220,19 +220,6 @@ taskService.executeTask = function executeTask(taskId, user, hostProtocol, choic logger.error("Error while updating Bot Execution Count"); } }); - var reqBody = { - userName: user, - hostProtocol: hostProtocol, - choiceParam: choiceParam, - appData: appData, - tagServer: botTagServer, - paramOptions: paramOptions - } - bots.updateBotsDetail(task._id, {runTimeParams: reqBody}, function (err, data) { - if (err) { - logger.error("Error while updating Bots Configuration"); - } - }); } }else{ logger.debug("There is no BOTs data present in DB"); From 4e1f3075df58212921e9260f91604a445f244a31 Mon Sep 17 00:00:00 2001 From: Durgesh1988 Date: Wed, 4 Jan 2017 20:11:53 +0530 Subject: [PATCH 2/2] CAT-2617 Fixed --- .../catalyst-scheduler/catalystScheduler.js | 60 +++++-------------- server/app/services/botsService.js | 39 +++++++----- 2 files changed, 39 insertions(+), 60 deletions(-) diff --git a/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js b/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js index 4a1c554dc..d05439767 100644 --- a/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js +++ b/server/app/cronjobs/catalyst-scheduler/catalystScheduler.js @@ -3,7 +3,6 @@ var instancesDao = require('_pr/model/classes/instance/instance'); var taskDao = require('_pr/model/classes/tasks/tasks.js'); var botsDao = require('_pr/model/bots/bots.js'); var schedulerService = require('_pr/services/schedulerService'); -var auditTrail = require('_pr/model/audit-trail/audit-trail.js'); var async = require('async'); var cronTab = require('node-crontab'); var catalystSync = module.exports = {}; @@ -145,37 +144,28 @@ catalystSync.executeScheduledBots = function executeScheduledBots() { return; } if (bots && bots.length) { - var botsList=[],count = 0; + var botsList=[]; for (var i = 0; i < bots.length; i++) { (function(bot) { - var query = { - auditType: 'BOTs', - actionStatus: 'running', - auditId:bot.botId - }; - auditTrail.getAuditTrails(query, function(err,botsAudits){ - if(err){ - logger.error("Failed to fetch running Bots",err); - count++ - return; - }else if(botsAudits.length > 0){ - count++; - }else{ - botsList.push(function(callback){schedulerService.executeScheduledBots(bot,callback);}); - count++; - } - if(count===bots.length){ - executeBots(botsList,function(err,data){ - if(err) { - logger.error("Error while executing BOTs Scheduler"); - return; - }else{ - logger.debug("Bots Scheduler Completed"); + if(bot.cronJobId && bot.cronJobId !== null){ + cronTab.cancelJob(bot.cronJobId); + } + botsList.push(function(callback){schedulerService.executeScheduledBots(bot,callback);}); + if(botsList.length === bots.length){ + if(botsList.length > 0) { + async.parallel(botsList, function (err, results) { + if (err) { + logger.error(err); return; } + logger.debug("Bots Scheduler Completed"); + return; }) + }else{ + logger.debug("There is no scheduled Bots right now."); + return; } - }); + } })(bots[i]); } }else{ @@ -185,24 +175,6 @@ catalystSync.executeScheduledBots = function executeScheduledBots() { }); } -function executeBots(botsList,callback){ - if(botsList.length > 0) { - async.parallel(botsList, function (err, results) { - if (err) { - logger.error(err); - callback(err,null); - return; - } - callback(null,results); - return; - }) - }else{ - logger.debug("There is no scheduled Bots right now."); - callback(null,botsList); - return; - } -} - function cancelOldCronJobs(ids){ if(ids.length > 0){ var count = 0; diff --git a/server/app/services/botsService.js b/server/app/services/botsService.js index f6847d0ee..4dc732a6b 100644 --- a/server/app/services/botsService.js +++ b/server/app/services/botsService.js @@ -117,31 +117,38 @@ botsService.updateBotsScheduler = function updateBotsScheduler(botId,botObj,call logger.error(err); } else if(botsData.length > 0){ if (botsData[0].isBotScheduled === true) { - var catalystSync = require('_pr/cronjobs/catalyst-scheduler/catalystScheduler.js'); - catalystSync.executeScheduledBots(); - if(botsData[0].botLinkedCategory === 'Task'){ - tasks.getTaskById(botId,function(err,task){ - if(err){ - logger.error("Error in fetching Task details",err); - }else if(task.isTaskScheduled === true){ - tasks.updateTaskScheduler(botId,function(err,updateData){ - if(err){ - logger.error("Error in Updating Task details",err); + var schedulerService = require('_pr/services/schedulerService.js'); + schedulerService.executeScheduledBots(botsData[0],function(err,data){ + if(err){ + logger.error("Error in executing BOTs Scheduler"); + } + }); + if (botsData[0].botLinkedCategory === 'Task') { + tasks.getTaskById(botId, function (err, task) { + if (err) { + logger.error("Error in fetching Task details", err); + } else if (task.isTaskScheduled === true) { + tasks.updateTaskScheduler(botId, function (err, updateData) { + if (err) { + logger.error("Error in Updating Task details", err); } }); - if(task.cronJobId && task.cronJobId !== null){ + if (task.cronJobId && task.cronJobId !== null) { var cronTab = require('node-crontab'); cronTab.cancelJob(task.cronJobId); } } }); } - } else if (botsData[0].cronJobId && botsData[0].cronJobId !== null) { - var cronTab = require('node-crontab'); - cronTab.cancelJob(botsData[0].cronJobId); - } else { - logger.debug("There is no cron job associated with Bot "); + }else{ + var schedulerService = require('_pr/services/schedulerService.js'); + schedulerService.executeScheduledBots(botsData[0],function(err,data){ + if(err){ + logger.error("Error in executing BOTs Scheduler"); + } + }); } + } else{ logger.debug("There is no Bots "); }