You can use a Java SDK library to call operations on the Orchestrator REST API in Java applications and work directly with objects.

Every RESTful Web service of the Orchestrator REST SDK has a wrapping Java class with methods that correspond to the operations that can be run by using the service.

The Java REST SDK is installed together with Orchestrator. The Java REST SDK artifacts are available at the following locations.

Note:

You can only access the artifacts if you have deployed the Orchestrator Appliance.

  • https://orchestrator_host:port/vco-repo/com/vmware/o11n/o11n-rest-client/

  • https://orchestrator_host:port/vco-repo/com/vmware/o11n/o11n-rest-client-examples/

  • https://orchestrator_host:port/vco-repo/com/vmware/o11n/o11n-rest-client-services/

  • https://orchestrator_host:port/vco-repo/com/vmware/o11n/o11n-rest-client-stubs/

Run a Workflow and Wait for Its Completion

The following example code runs a workflow and waits for it to complete.

//start a new session to Orchestrator by using specified credentials
VcoSession session = DefaultVcoSessionFactory.newLdapSession(new URI("https://orchestrator-server:8281/vco/api/"), "username", "password");

//create the services
WorkflowService workflowService = new WorkflowService(session);
ExecutionService executionService = new ExecutionService(session);

//find a workflow by ID
Workflow workflow = workflowService.getWorkflow("1231235");

//create an ExecutionContext from the user's input
ExecutionContext context = new ExecutionContextBuilder().addParam("name", "Jerry").addParam("age", 18).build();

//run the workflow
WorkflowExecution execution = executionService.execute(workflow, context);

//wait for the workflow to reach the user interaction state, checking every 500 milliseconds
execution = executionService.awaitState(execution, 500, 10, WorkflowExecutionState.CANCELED, WorkflowExecutionState.FAILED, WorkflowExecutionState.COMPLETED);

String nameParamValue = new ParameterExtractor().fromTheOutputOf(execution).extractString("name");
System.out.println("workflow was executed with 'name' input set to" + nameParamValue);