06-12-2015 06:16 AM - edited 03-01-2019 06:35 AM
Task Name | Parallel Workflow Execution Example (near parallel) |
Description |
|
Prerequisites |
|
Category | Workflow |
Components | vSphere 5.x |
User Inputs |
Instructions for Regular Workflow Use:
The Workflow:
Workflow Input Parameters:
Each workflow name and its variable and its variable content.
The Execution of the workflow:
The main Workflow and its Child Workflows (SR logs):
The Code:
importPackage(com.cloupia.model.cIM);
importPackage(java.util);
importPackage(java.lang);
importPackage(java.io);
importPackage(com.cloupia.lib.util);
importPackage(com.cloupia.model.cIM);
importPackage(com.cloupia.service.cIM.inframgr);
importPackage(org.apache.commons.httpclient);
importPackage(org.apache.commons.httpclient.cookie);
importPackage(org.apache.commons.httpclient.methods);
importPackage(org.apache.commons.httpclient.auth);
importPackage(com.cloupia.model.cEvent.notify);
importPackage(com.cloupia.lib.util.mail);
importPackage(com.cloupia.fw.objstore);
importPackage(com.cloupia.lib.util.managedreports);
//
// User Input Parameterts
//
var wfn1 = ctxt.getInput("WFN1");
var wfi11 = ctxt.getInput("WFI11");
var wfi12 = ctxt.getInput("WFI12");
var wfv11 = ctxt.getInput("WFV11");
var wfv12 = ctxt.getInput("WFV12");
var wfn2 = ctxt.getInput("WFN2");
var wfi21 = ctxt.getInput("WFI21");
var wfi22 = ctxt.getInput("WFI22");
var wfv21 = ctxt.getInput("WFV21");
var wfv22 = ctxt.getInput("WFV22");
var wfn3 = ctxt.getInput("WFN3");
var wfi31 = ctxt.getInput("WFI31");
var wfi32 = ctxt.getInput("WFI32");
var wfv31 = ctxt.getInput("WFV31");
var wfv32 = ctxt.getInput("WFV32");
var delaySecondsBetweenInvocation = 5;
function sleep()
{
var milliseconds = delaySecondsBetweenInvocation * 1000;
Thread.sleep(milliseconds);
}
//
//
logger.addInfo("----------------------------------------------------------");
logger.addInfo("My SR ID = "+ctxt.getSrId());
var mySRID = ctxt.getSrId();
logger.addInfo("params wfn1 = "+wfn1);
logger.addInfo("params wfi11 = "+wfi11);
logger.addInfo("params wfi12 = "+wfi12);
logger.addInfo("params wfv11 = "+wfv11);
logger.addInfo("params wfv12 = "+wfv12);
logger.addInfo("----------------------------------------------------------");
logger.addInfo("params wfn2 = "+wfn2);
logger.addInfo("params wfi21 = "+wfi21);
logger.addInfo("params wfi22 = "+wfi22);
logger.addInfo("params wfv21 = "+wfv21);
logger.addInfo("params wfv22 = "+wfv22);
logger.addInfo("----------------------------------------------------------");
logger.addInfo("params wfn3 = "+wfn3);
logger.addInfo("params wfi31 = "+wfi31);
logger.addInfo("params wfi32 = "+wfi32);
logger.addInfo("params wfv31 = "+wfv31);
logger.addInfo("params wfv32 = "+wfv32);
//
// Information
//
// If you are using : var childSrId= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(“Task_Y”,
// params,ctxt.getSrId()); // takes it as parent SR Id
// userAPISubmitWorkflowServiceRequest API maintains a parent-child relationship.
// The child SRs it generates won’t be visible to the Service Request logs
// If you need to make the child SR visible then use the API like :
// userAPISubmitWorkflowServiceRequest(“Task_Y”, params, -1);
//
// Call New Service Request for workflow 1
//
logger.addInfo("-------------------Provsion Workflow 1---------------------------------");
var params = util.createNameValueList();
params.addNameValue(util.createNameValue(wfv11, wfi11));
params.addNameValue(util.createNameValue(wfv12, wfi12));
//var childSrId1= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(wfn1, params, ctxt.getSrId());
var childSrId1= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(wfn1, params, -1);
logger.addInfo("childSrId 1 = "+childSrId1);
logger.addInfo("Sleeping for a bit (5 sec...");
sleep();
//
// Call New Service Request for workflow 2
//
logger.addInfo("-------------------Provsion Workflow 2---------------------------------");
var params = util.createNameValueList();
params.addNameValue(util.createNameValue(wfv21, wfi21));
params.addNameValue(util.createNameValue(wfv22, wfi22));
//var childSrId2= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(wfn2, params, ctxt.getSrId());
var childSrId2= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(wfn2, params, -1);
logger.addInfo("childSrId 2 = "+childSrId2);
logger.addInfo("Sleeping for a bit (5 sec...");
sleep();
//
// Call New Service Request for workflow 3
//
logger.addInfo("-------------------Provsion Workflow 3---------------------------------");
var params = util.createNameValueList();
params.addNameValue(util.createNameValue(wfv31, wfi31));
params.addNameValue(util.createNameValue(wfv32, wfi32));
//var childSrId3= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(wfn3, params, ctxt.getSrId());
var childSrId3= ctxt.getAPI().userAPISubmitWorkflowServiceRequest(wfn3, params, -1);
logger.addInfo("childSrId 3 = "+childSrId3);
logger.addInfo("Sleeping for a bit (5 sec...");
sleep();
logger.addInfo("-------------------Waiting for Workflow 1 to Finish---------------------");
var status = ctxt.waitForCompletion(childSrId1, 1800000);
logger.addInfo("-------------------Done Waiting for Child Workflow to Finish----------");
if (status == 0)
{
logger.addInfo("Provisioned Workflow 1 ="+ childSrId1+ " successfully.");
} else {
logger.addError("SR ID ="+ childSrId1+ " Failed");
}
logger.addInfo("-------------------Waiting for Workflow 2 to Finish---------------------");
var status = ctxt.waitForCompletion(childSrId2, 1800000);
logger.addInfo("-------------------Done Waiting for Child Workflow to Finish----------");
if (status == 0)
{
logger.addInfo("Provisioned Workflow 2 ="+ childSrId2+ " successfully.");
} else {
logger.addError("SR ID ="+ childSrId2+ " Failed");
}
logger.addInfo("-------------------Waiting for Workflow 3 to Finish---------------------");
var status = ctxt.waitForCompletion(childSrId3, 1800000);
logger.addInfo("-------------------Done Waiting for Child Workflow to Finish----------");
if (status == 0)
{
logger.addInfo("Provisioned Workflow 3 ="+ childSrId3+ " successfully.");
} else {
logger.addError("SR ID ="+ childSrId3+ " Failed");
}
Workflow execution log:
Service Request ID: 5088
Workflow Inputs:
- WFN1
- WFI11
- WFI12
- WFV11
- WFV12
- WFN2
- WFI21
- WFI22
- WFV21
- WFV22
- WFN3
- WFI31
- WFI32
- WFV31
- WFV32
Jun 12, 2015 13:05:13 UTC Request submitted
Jun 12, 2015 13:05:17 UTC Executing workflow item number 1
Jun 12, 2015 13:05:17 UTC Completed workflow item number 1, with status Completed
Jun 12, 2015 13:05:23 UTC Executing workflow item number 2
Jun 12, 2015 13:05:23 UTC Trigger context executeWorkFlowStep called
Jun 12, 2015 13:05:23 UTC Executing custom action Call 3 workflows (ExecuteCloupiaScript)
Jun 12, 2015 13:05:23 UTC Executing custom action Call 3 workflows (ExecuteCloupiaScript)
Jun 12, 2015 13:05:26 UTC Executing cloupia script: Call Workflows
Jun 12, 2015 13:05:26 UTC ----------------------------------------------------------
Jun 12, 2015 13:05:26 UTC My SR ID = 5088
Jun 12, 2015 13:05:26 UTC params wfn1 = TestWorkflow1
Jun 12, 2015 13:05:26 UTC params wfi11 = Happy
Jun 12, 2015 13:05:26 UTC params wfi12 = 4th of July
Jun 12, 2015 13:05:26 UTC params wfv11 = A1
Jun 12, 2015 13:05:26 UTC params wfv12 = A2
Jun 12, 2015 13:05:26 UTC ----------------------------------------------------------
Jun 12, 2015 13:05:26 UTC params wfn2 = TestWorkflow2
Jun 12, 2015 13:05:26 UTC params wfi21 = Happy
Jun 12, 2015 13:05:26 UTC params wfi22 = Labor Day
Jun 12, 2015 13:05:26 UTC params wfv21 = A1
Jun 12, 2015 13:05:26 UTC params wfv22 = A2
Jun 12, 2015 13:05:26 UTC ----------------------------------------------------------
Jun 12, 2015 13:05:26 UTC params wfn3 = TestWorkflow3
Jun 12, 2015 13:05:26 UTC params wfi31 = Happy
Jun 12, 2015 13:05:26 UTC params wfi32 = Birthday
Jun 12, 2015 13:05:26 UTC params wfv31 = A1
Jun 12, 2015 13:05:26 UTC params wfv32 = A2
Jun 12, 2015 13:05:26 UTC -------------------Provsion Workflow 1---------------------------------
Jun 12, 2015 13:05:27 UTC childSrId 1 = 5089
Jun 12, 2015 13:05:27 UTC Sleeping for a bit (5 sec...
Jun 12, 2015 13:05:32 UTC -------------------Provsion Workflow 2---------------------------------
Jun 12, 2015 13:05:33 UTC childSrId 2 = 5090
Jun 12, 2015 13:05:33 UTC Sleeping for a bit (5 sec...
Jun 12, 2015 13:05:38 UTC -------------------Provsion Workflow 3---------------------------------
Jun 12, 2015 13:05:40 UTC childSrId 3 = 5091
Jun 12, 2015 13:05:40 UTC Sleeping for a bit (5 sec...
Jun 12, 2015 13:05:45 UTC -------------------Waiting for Workflow 1 to Finish---------------------
Jun 12, 2015 13:05:55 UTC Workflow with SR-ID 5089 is complete
Jun 12, 2015 13:05:55 UTC -------------------Done Waiting for Child Workflow to Finish----------
Jun 12, 2015 13:05:55 UTC Provisioned Workflow 1 =5089 successfully.
Jun 12, 2015 13:05:55 UTC -------------------Waiting for Workflow 2 to Finish---------------------
Jun 12, 2015 13:06:05 UTC Workflow with SR-ID 5090 is complete
Jun 12, 2015 13:06:05 UTC -------------------Done Waiting for Child Workflow to Finish----------
Jun 12, 2015 13:06:05 UTC Provisioned Workflow 2 =5090 successfully.
Jun 12, 2015 13:06:05 UTC -------------------Waiting for Workflow 3 to Finish---------------------
Jun 12, 2015 13:06:15 UTC Workflow with SR-ID 5091 is complete
Jun 12, 2015 13:06:15 UTC -------------------Done Waiting for Child Workflow to Finish----------
Jun 12, 2015 13:06:15 UTC Provisioned Workflow 3 =5091 successfully.
Jun 12, 2015 13:06:15 UTC Completed cloupia script Call Workflows
Jun 12, 2015 13:06:15 UTC Task #1 (Call 3 workflows (ExecuteCloupiaScript)) completed successfully in 52 seconds
Jun 12, 2015 13:06:15 UTC Input/Output values for Task #1 (Call 3 workflows (ExecuteCloupiaScript)):
Jun 12, 2015 13:06:15 UTC [Local Input: Label = Call Workflows]
Jun 12, 2015 13:06:15 UTC [Local Input: Script = importPackage(com.cloupia.model.cIM); importPackage(java.util); importPackage(java.lang); importPackage(java.io); importPackage(com.cloupia.lib.util); importPackage(com.cloupia.model.cIM); importPackage(com.cloupia.service.cIM.inframgr); importPackage(org.apache.commons.httpclient); importPackage(org.apache.commons.httpclient.cookie); importPackage(org.apache.commons.httpclient.methods); importPackage(org.apache.commons.httpclient.auth); importPackage(com.cloupia.model.cEvent.notify); importPackage(com.cloupia.lib.util.mail); importPackage(com.cloupia.fw.objstore); importPackage(com.cloupia.lib.util.managedreports); // // User Input Parameterts // var wfn1 = ctxt.getInput('WFN1'); var wfi11 = ctxt.getInput('WFI11'); var wfi12 = ctxt.getInput('WFI12'); var wfv11 = ctxt.getInput('WFV11'); var wfv12 = ctxt.getInput('WFV12'); var wfn2 = ctxt.getInput('WFN2'); var wfi21 = ctxt.getInput('WFI21'); var wfi22 = ctxt.getInput('WFI22'); var wfv21 = ctxt.getInput('WFV21'); var wfv22 = ctxt.ge
Jun 12, 2015 13:06:15 UTC [Local Input: Undo Script = ]
Jun 12, 2015 13:06:15 UTC Completed workflow item number 2, with status Completed
Jun 12, 2015 13:06:16 UTC Executing workflow item number 3
Jun 12, 2015 13:06:16 UTC Completed workflow item number 3, with status Completed
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: