You run a workflow through the Orchestrator REST API by creating a new execution object for a particular workflow.

Before you begin

Verify that you have imported the sample workflows package in Orchestrator. The package is included in the Orchestrator sample applications ZIP file that you can download from the Orchestrator documentation page.

Procedure

  1. Retrieve the definition of the workflow that you want to run by making a GET request at the URL of the definition:
    GET http://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/

    You receive the definition of the workflow in the response body of the request. In the workflow definition, you can view the input parameters of the workflow, the workflow description, and other information.

  2. Make a POST request at the URL that holds the execution objects of the workflow:
    POST https://{orchestrator_host}:{port}/vco/api/workflows/{workflowID}/executions/
  3. Provide values for the input parameters of the workflow in an execution-context element in the request body.

    If you provide an empty execution-context in the request body, the workflow runs with default values for its input parameters, if any.

Results

If the POST request is successful, you receive the status code 202 with an empty response body and a link to the newly created execution object in the Location header.

Run the Send Hello Workflow

You can retrieve the definition of the Send Hello workflow and run it.

  1. Make a GET request at the URL that holds the definition of the Send Hello workflow:

    GET https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/

    You receive the workflow definition in the response body of the request:

    <xml version="1.0" encoding="UTF-8" standalone="yes">
    <workflow xmlns="http://www.vmware.com/vco" customized-icon="false"
       href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/">
       <relations>
          <link rel="up"
            href="https://localhost:8281/vco/api/inventory/System/Workflows/Samples/HelloWorld/" />
          <link rel="add"
            href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/executions/" />
          <link rel="down"
            href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/executions/" />
          <link rel="down"
            href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/presentation/" />
          <link rel="down"
          	 href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/tasks/" />
          <link rel="down"
            href="https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/icon/" />
       </relations>
       <input-parameters>
          <parameter name="name" type="string" />
       </input-parameters>
       <output-parameters>
          <parameter name="message" type="string" />
       </output-parameters>
       <name>Send Hello</name>
    	  <description></description>
    </workflow>
  2. Make a POST request at the URL that holds the execution objects for the workflow:

    POST https://localhost:8281/vco/api/workflows/CF808080808080808080808080808080DA808080013086668236014a0614d16e1/executions/

    Pass values for the input parameters in an execution-context element in the request body:

    <execution-context  xmlns="http://www.vmware.com/vco">
       <parameters>
          <parameter name="name" type="string">
             <string>John Smith</string>
           </parameter>
        </parameters>
    </execution-context>