From 9c46da52eb0018a4fb673814be43ebf1f05925da Mon Sep 17 00:00:00 2001 From: VIJAYKUMARNINGANURE Date: Fri, 28 Oct 2016 13:09:52 +0530 Subject: [PATCH] Implemented the parameter passing for BOTS Library --- server/app/model/classes/tasks/tasks.js | 10 ++++++---- server/app/routes/v1.0/routes_tasks.js | 12 +++++++++++- server/app/services/taskService.js | 13 +++++++++++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/server/app/model/classes/tasks/tasks.js b/server/app/model/classes/tasks/tasks.js index d723b484f..3774d381c 100755 --- a/server/app/model/classes/tasks/tasks.js +++ b/server/app/model/classes/tasks/tasks.js @@ -135,7 +135,7 @@ taskSchema.plugin(mongoosePaginate); // Executes a task -taskSchema.methods.execute = function(userName, baseUrl, choiceParam, appData, blueprintIds, envId, callback, onComplete) { +taskSchema.methods.execute = function(userName, baseUrl, choiceParam, appData, blueprintIds, envId, paramOptions, callback, onComplete) { logger.debug('Executing'); var task; var self = this; @@ -155,12 +155,13 @@ taskSchema.methods.execute = function(userName, baseUrl, choiceParam, appData, b taskHistoryData.nodeIds = this.taskConfig.nodeIds; taskHistoryData.runlist = this.taskConfig.runlist; - taskHistoryData.attributes = this.taskConfig.attributes; - + //taskHistoryData.attributes = this.taskConfig.attributes; + taskHistoryData.attributes = (!paramOptions) ? this.taskConfig.attributes : paramOptions; } else if (this.taskType === TASK_TYPE.JENKINS_TASK) { task = new JenkinsTask(this.taskConfig); taskHistoryData.jenkinsServerId = this.taskConfig.jenkinsServerId; taskHistoryData.jobName = this.taskConfig.jobName; + taskHistoryData.parameterized = (!paramOptions) ? this.taskConfig.parameterized : paramOptions; } else if (this.taskType === TASK_TYPE.PUPPET_TASK) { task = new PuppetTask(this.taskConfig); taskHistoryData.nodeIds = this.taskConfig.nodeIds; @@ -179,7 +180,8 @@ taskSchema.methods.execute = function(userName, baseUrl, choiceParam, appData, b } else if (this.taskType === TASK_TYPE.SCRIPT_TASK) { task = new ScriptTask(this.taskConfig); taskHistoryData.nodeIds = this.taskConfig.nodeIds; - taskHistoryData.scriptDetails = this.taskConfig.scriptDetails; + //taskHistoryData.scriptDetails = this.taskConfig.scriptDetails; + taskHistoryData.scriptDetails = (!paramOptions) ? this.taskConfig.scriptDetails : paramOptions; } else { callback({ message: "Invalid Task Type" diff --git a/server/app/routes/v1.0/routes_tasks.js b/server/app/routes/v1.0/routes_tasks.js index 007316c17..d9e766e97 100755 --- a/server/app/routes/v1.0/routes_tasks.js +++ b/server/app/routes/v1.0/routes_tasks.js @@ -157,7 +157,17 @@ module.exports.setRoutes = function(app, sessionVerification) { }); }); */ - taskService.executeTask(taskId, user, hostProtocol, choiceParam, appData, function(err, historyData) { + + var attributes = req.body.attributes; + var parameterized = req.body.parameterized; + var scriptDetails = req.body.scriptDetails; + var paramOptions = { + attributes : attributes, + parameterized : parameterized, + scriptDetails : scriptDetails + }; + + taskService.executeTask(taskId, user, hostProtocol, choiceParam, appData, paramOptions, function(err, historyData) { if (err === 404) { res.status(404).send("Task not found."); return; diff --git a/server/app/services/taskService.js b/server/app/services/taskService.js index ec79854cd..b3b6fcc77 100644 --- a/server/app/services/taskService.js +++ b/server/app/services/taskService.js @@ -78,7 +78,7 @@ taskService.getChefTasksByOrgBgProjectAndEnvId = function getChefTasksByOrgBgPro }); }; -taskService.executeTask = function executeTask(taskId, user, hostProtocol, choiceParam, appData, callback) { +taskService.executeTask = function executeTask(taskId, user, hostProtocol, choiceParam, appData, paramOptions, callback) { if (appData) { appData['taskId'] = taskId; } @@ -89,11 +89,20 @@ taskService.executeTask = function executeTask(taskId, user, hostProtocol, choic return callback(error, null); } if (task) { + + if(task.taskType.CHEF_TASK){ + paramOptions = paramOptions.attributes; + }else if(task.taskType.JENKINS_TASK){ + paramOptions = paramOptions.parameterized; + }else if(task.taskType.SCRIPT_TASK) { + paramOptions = paramOptions.scriptDetails; + } + var blueprintIds = []; if (task.blueprintIds && task.blueprintIds.length) { blueprintIds = task.blueprintIds; } - task.execute(user, hostProtocol, choiceParam, appData, blueprintIds, task.envId, function(err, taskRes, historyData) { + task.execute(user, hostProtocol, choiceParam, appData, blueprintIds, task.envId, paramOptions, function(err, taskRes, historyData) { if (err) { var error = new Error('Failed to execute task.'); error.status = 500;