5.5.1
Table Of Contents
- Developing a Web Services Client for VMware vCenter Orchestrator
- Contents
- Developing Web Services Client for VMware vCenter Orchestrator
- Developing a Web Services Client
- Using the vCenter Orchestrator REST API
- Authenticating Against Orchestrator and Third-Party Systems
- Accessing the Reference Documentation for the Orchestrator REST API
- Using the Java REST SDK
- Operations with Workflows
- Working with Tasks
- Finding Objects in the Orchestrator Inventory
- Importing and Exporting Orchestrator Objects
- Deleting Orchestrator Objects
- Setting Permissions on Orchestrator Objects
- REST API Permissions
- Retrieve the Permissions of a Workflow
- Delete the Permissions of a Workflow
- Set the Permissions for a Workflow
- Retrieve the Permissions of an Action
- Delete the Permissions of an Action
- Set the Permissions for an Action
- Retrieve the Permissions of a Package
- Delete the Permissions of a Package
- Set the Permissions for a Package
- Retrieve the Permissions of a Resource
- Delete the Permissions of a Resource
- Set the Permissions for a Resource
- Retrieve the Permissions of a Configuration Element
- Delete the Permissions of a Configuration Element
- Set the Permissions for a Configuration Element
- Performing Operations with Plug-Ins
- Performing Server Configuration Operations
- Performing Tagging Operations
- Writing a Client Application for the Orchestrator SOAP Service
- Process for Creating an Orchestrator Web Service Client Application
- Web Service Endpoint
- Generating the Orchestrator Web Service Stubs
- Accessing the Server from Web Service Clients
- Create a Web Service Client
- Connect to the Orchestrator Web Service
- Find Objects in the Orchestrator Server
- Find Objects by Using the find Operation
- Find Objects by Using the findForId Operation
- Find Objects by Using the findRelation Operation
- Find Workflows in the Orchestrator Server
- Find Workflows by Using the getAllWorkflows Operation
- Retrieve the ID of a Workflow
- Find Workflows by Using the getWorkflowsWithName Operation
- Find Workflows by Using the getWorkflowForID Operation
- Run Workflows from a Web Service Client
- Interact with a Workflow While it Runs
- Obtain Workflow Results
- Time Zones and Running Workflows Through Web Services
- Web Service Application Examples
- Web Service API Object Reference
- Web Service API Operation Reference
- answerWorkflowInput Operation
- cancelWorkflow Operation
- echo Operation
- echoWorkflow Operation
- executeWorkflow Operation
- find Operation
- findForId Operation
- findRelation Operation
- getAllPlugins Operation
- getAllWorkflows Operation
- getWorkflowForId Operation
- getWorkflowInputForId Operation
- getWorkflowInputForWorkflowTokenId Operation
- getWorkflowsWithName Operation
- getWorkflowTokenBusinessState Operation
- getWorkflowTokenForId Operation
- getWorkflowTokenResult Operation
- getWorkflowTokenStatus Operation
- hasChildrenInRelation Operation
- hasRights Operation
- sendCustomEvent Operation
- simpleExecuteWorkflow Operation
- Index
Procedure
1 Find running workflows by calling the getWorkflowTokenForId operation.
Calling getWorkflowTokenForId obtains a WorkflowToken object, which contains all of the information
about that specific workflow token.
WorkflowToken onemoretoken = vsoWebControl.getWorkflowTokenForId(workflowTokenId, username,
password);
AllActiveWorkflowTokens[n] = onemoretoken;
The preceding code example obtains a WorkflowToken object from its ID and sets it into an array of
running WorkflowToken objects.
2 Check the status of a workflow token by calling the getWorkFlowTokenStatus operation.
When a workflow runs, an application's main event loop usually concentrates on checking the status of
the workflow at regular intervals. The getWorkflowTokenStatus operation requires an array of the IDs of
the workflow tokens for which it is obtaining the status.
String workflowId = workflows[0].getId();
WorkflowToken token = vsoWebControl.executeWorkflow(workflowId, username, password, null);
String[] tokenIds = { token.getId() };
String tokenStatus = "";
while ("completed".equals(tokenStatus) == false
&& "failed".equals(tokenStatus) == false
&& "canceled".equals(tokenStatus) == false
&& "waiting".equals(tokenStatus) == false) {
Thread.sleep(1 * 1000); // Wait 1s
String[] status = vsoWebControl.getWorkflowTokenStatus(tokenIds, username,
password);
tokenStatus = status[0];
System.out.println("Workflow is still running...(" + tokenStatus + ")");
}
The preceding example obtains the IDs of an array of workflow tokens. It checks the status of a
WorkflowToken by calling getWorkflowTokenStatus().
The preceding example keeps the application updated on the status of the WorkflowToken objects by
checking their state at one second intervals. For example, If the workflow is in the waiting state, it is
waiting for runtime input from the answerWorkflowInput operation.
3 Provide inputs from user interactions by calling the answerWorkflowInput operation.
If a workflow is waiting for user input in the waiting state, an application's event loop can specify that
input at any time. You can create WorkflowTokenAttribute arrays as normal, and then supply them to a
workflow during its run by using the answerWorkflowInput operation. The following example continues
the code from Step 2.
if ("waiting".equals(tokenStatus) == true) {
System.out.println("Answering user interaction");
WorkflowTokenAttribute[] attributes = new WorkflowTokenAttribute[2];
WorkflowTokenAttribute attribute = null;
attribute = new WorkflowTokenAttribute();
attribute.setName("param1");
attribute.setType("string");
attribute.setValue("answer1");
attributes[0] = attribute;
attribute = new WorkflowTokenAttribute();
attribute.setName("param2");
attribute.setType("number");
Chapter 3 Writing a Client Application for the Orchestrator SOAP Service
VMware, Inc. 65