aboutsummaryrefslogtreecommitdiffstats
path: root/lib/cloudify.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cloudify.js')
-rw-r--r--lib/cloudify.js58
1 files changed, 28 insertions, 30 deletions
diff --git a/lib/cloudify.js b/lib/cloudify.js
index 23e779a..b03ecac 100644
--- a/lib/cloudify.js
+++ b/lib/cloudify.js
@@ -1,5 +1,5 @@
/*
-Copyright(c) 2017 AT&T Intellectual Property. All rights reserved.
+Copyright(c) 2018 AT&T Intellectual Property. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -75,19 +75,17 @@ var delay = function(dtime) {
};
// Get current status of a workflow execution
-const getExecutionStatus = function(execution_id, mainReq) {
- /* Defense: Some callers do not supply mainReq */
- mainReq = mainReq || {};
+const getExecutionStatus = function(req, execution_id) {
var reqOptions = {
method : "GET",
uri : cfyAPI + "/executions/" + execution_id
};
addAuthToOptions(reqOptions);
- return doRequest(reqOptions, null, CLOUDIFY, mainReq);
+ return doRequest(req, reqOptions, null, CLOUDIFY);
};
// Poll for the result of a workflow execution until it's done
-var getWorkflowResult = function(execution_id, mainReq) {
+const getWorkflowResult = function(mainReq, execution_id) {
/* Defense: Some callers do not supply mainReq */
mainReq = mainReq || {};
logger.debug(mainReq.dcaeReqId, "Getting workflow result for execution id: " + execution_id);
@@ -100,7 +98,7 @@ var getWorkflowResult = function(execution_id, mainReq) {
};
// Create execution status checker function
- var getExecStatus = function() {return getExecutionStatus(execution_id, mainReq);};
+ var getExecStatus = function() {return getExecutionStatus(mainReq, execution_id);};
return repeat.repeatWhile(getExecStatus, checkStatus, MAX_TRIES, RETRY_INTERVAL)
.then(
@@ -181,18 +179,18 @@ const startWorkflowExecution = function(mainReq, deployment_id, workflow_id, par
if (parameters) {body.parameters = parameters;}
// Make the POST request
- return doRequest(reqOptions, JSON.stringify(body), CLOUDIFY, mainReq);
+ return doRequest(mainReq, reqOptions, JSON.stringify(body), CLOUDIFY);
};
//Initiate a workflow execution against a deployment
-const initiateWorkflowExecution = function(deployment_id, workflow_id, parameters) {
- return startWorkflowExecution(null, deployment_id, workflow_id, parameters)
+const initiateWorkflowExecution = function(req, deployment_id, workflow_id, parameters) {
+ return startWorkflowExecution(req, deployment_id, workflow_id, parameters)
.then(function(result) {
- logger.debug(null, "Result from POSTing workflow execution start: " + JSON.stringify(result));
+ logger.debug(req.dcaeReqId, "Result from POSTing workflow execution start: " + JSON.stringify(result));
if (result.json && result.json.id) {
return {deploymentId: deployment_id, workflowType: workflow_id, executionId: result.json.id};
}
- logger.debug(null,"Did not get expected JSON body from POST to start workflow");
+ logger.debug(req.dcaeReqId,"Did not get expected JSON body from POST to start workflow");
var err = new Error("POST to start workflow got success response but no body");
err.status = err.code = 502;
throw err;
@@ -200,7 +198,7 @@ const initiateWorkflowExecution = function(deployment_id, workflow_id, parameter
};
// Uploads a blueprint via the Cloudify API
-exports.uploadBlueprint = function(bpid, blueprint) {
+exports.uploadBlueprint = function(req, bpid, blueprint) {
// Cloudify API wants a gzipped tar of a directory, not the blueprint text
var zip = new admzip();
@@ -220,11 +218,11 @@ exports.uploadBlueprint = function(bpid, blueprint) {
addAuthToOptions(reqOptions);
// Initiate PUT request and return the promise for a result
- return doRequest(reqOptions, src, CLOUDIFY);
+ return doRequest(req, reqOptions, src, CLOUDIFY);
};
// Creates a deployment from a blueprint
-exports.createDeployment = function(dpid, bpid, inputs) {
+exports.createDeployment = function(req, dpid, bpid, inputs) {
// Set up the HTTP PUT request
var reqOptions = {
@@ -245,7 +243,7 @@ exports.createDeployment = function(dpid, bpid, inputs) {
}
// Make the PUT request to create the deployment
- return doRequest(reqOptions, JSON.stringify(body), CLOUDIFY);
+ return doRequest(req, reqOptions, JSON.stringify(body), CLOUDIFY);
};
// Initiate a workflow execution against a deployment
@@ -258,19 +256,19 @@ exports.getWorkflowExecutionStatus = getExecutionStatus;
exports.getWorkflowResult = getWorkflowResult;
// Executes a workflow against a deployment and returns a promise for final result
-exports.executeWorkflow = function(deployment_id, workflow_id, parameters) {
- return initiateWorkflowExecution(deployment_id, workflow_id, parameters)
+exports.executeWorkflow = function(req, deployment_id, workflow_id, parameters) {
+ return initiateWorkflowExecution(req, deployment_id, workflow_id, parameters)
// Wait for the result
.then (function(result) {
- logger.debug(null, "Result from initiating workflow: " + JSON.stringify(result));
- return getWorkflowResult(result.executionId);
+ logger.debug(req.dcaeReqId, "Result from initiating workflow: " + JSON.stringify(result));
+ return getWorkflowResult(req, result.executionId);
});
};
// Retrieves outputs for a deployment
-exports.getOutputs = function(dpid) {
+exports.getOutputs = function(req, dpid) {
var reqOptions = {
method : "GET",
uri : cfyAPI + "/deployments/" + dpid + "/outputs",
@@ -280,11 +278,11 @@ exports.getOutputs = function(dpid) {
};
addAuthToOptions(reqOptions);
- return doRequest(reqOptions, null, CLOUDIFY);
+ return doRequest(req, reqOptions, null, CLOUDIFY);
};
// Get the output descriptions for a deployment
-exports.getOutputDescriptions = function(dpid) {
+exports.getOutputDescriptions = function(req, dpid) {
var reqOptions = {
method : "GET",
uri : cfyAPI + "/deployments/" + dpid + "?include=outputs",
@@ -294,29 +292,29 @@ exports.getOutputDescriptions = function(dpid) {
};
addAuthToOptions(reqOptions);
- return doRequest(reqOptions, null, CLOUDIFY);
+ return doRequest(req, reqOptions, null, CLOUDIFY);
};
// Deletes a deployment
-exports.deleteDeployment = function(dpid) {
+exports.deleteDeployment = function(req, dpid) {
var reqOptions = {
method : "DELETE",
uri : cfyAPI + "/deployments/" + dpid
};
addAuthToOptions(reqOptions);
- return doRequest(reqOptions, null, CLOUDIFY);
+ return doRequest(req, reqOptions, null, CLOUDIFY);
};
// Deletes a blueprint
-exports.deleteBlueprint = function(bpid) {
+exports.deleteBlueprint = function(req, bpid) {
var reqOptions = {
method : "DELETE",
uri : cfyAPI + "/blueprints/" + bpid
};
addAuthToOptions(reqOptions);
- return doRequest(reqOptions, null, CLOUDIFY);
+ return doRequest(req, reqOptions, null, CLOUDIFY);
};
// Allow client to set the Cloudify API root address
@@ -349,7 +347,7 @@ exports.getNodeInstances = function (mainReq, on_next_node_instances, offset) {
addAuthToOptions(reqOptions);
logger.debug(mainReq.dcaeReqId, "getNodeInstances: " + JSON.stringify(reqOptions));
- return doRequest(reqOptions, null, CLOUDIFY, mainReq)
+ return doRequest(mainReq, reqOptions, null, CLOUDIFY)
.then(function(cloudify_response) {
logger.debug(mainReq.dcaeReqId, "getNodeInstances response: " + JSON.stringify(cloudify_response));
var response = {};
@@ -403,7 +401,7 @@ const runQueuedExecution = function(mainReq, deployment_id, workflow_id, paramet
553, "api", 553, CLOUDIFY);
}
exeQueue.setExecutionId(deployment_id, execution_id);
- return getWorkflowResult(execution_id, mainReq);
+ return getWorkflowResult(mainReq, execution_id);
})
.then(function(result) {
logger.debug(mainReq.dcaeReqId, 'successfully finished execution: ' + execution_id + " for" + exe_deployment_str);