This section briefly describes the various concepts of a serverless workflow.
For more information on the severless workflow specifications, see Serverless Workflow Specifications.
id: greet version: "1.0" specVersion: "0.7" name: Greet description: Greets by name start: Greet functions: - name: greetingFunction operation: http://sample-api:8888/api/oa3/docs/openapi.json#greet states: - name: Greet type: operation actions: - functionRef: refName: greetingFunction arguments: name: "${ .name }" actionDataFilter: toStateData: "${ .results }" stateDataFilter: output: "${ {message: .results.greeting} }" end: true
Parameter | Description |
---|---|
name | Name of the workflow. |
id | Unique ID of the workflow specific to a tenant. |
description | Describes the purpose of the workflow. |
states | Building blocks of the workflow execution instructions. Defines the control flow logic of the tasks that the workflow should execute. The execution flow of a workflow is defined by the transition/end fields in the states
For various state types available in Workflow Hub, see Workflow States section below. |
start | Indicates the name of the state from which the workflow execution begins |
Workflow States
Name | Description | Sample Code |
---|---|---|
Operation | Executes one or more of the following actions:
Note: A workflow function is a reusable definition for service invocations and can be referenced by its domain-specific name within the workflow states.
|
- name: Get_TCA_Session type: operation actions: - functionRef: refName: CreateTCASession arguments: tca: "${ .tca }" username: "${ .username }" password: "${ .password }" Content-Type: application/json actionDataFilter: results: '${ {"x-hm-authorization"} }' transition: Get_Vim_Tenant_By_Name Obtains the TCA session authorization code by invoking the |
Sleep | Pauses the workflow execution for a specific time duration | - name: Sleep_20S_and_Check_Rollback_Status_again type: sleep duration: PT20S transition: Get_Rollback_Status Sleeps for 20 seconds and then fetches the rollback status. |
Switch | Defines the data-based workflow transitions. | - name: Check_CNF_Descriptor type: switch dataConditions: - name: check_CNFD condition: "${ .vnfdId | length > 5 }" transition: Get_CNF_Instance defaultCondition: transition: ERROR_CNF_DESCRIPTOR_NOT_FOUND
Checks if the CNF descriptor is valid or not:
|
Parallel | Causes parallel execution of branches (set of actions) | - name: ParallelExec type: parallel completionType: allOf branches: - name: ShortDelayBranch actions: - subFlowRef: short-delay - name: LongDelayBranch actions: - subFlowRef: long-delay end: true Executes all the branches of the parallel state. |
ForEach | Allows looping through an array of inputs and executes the same action on each of the inputs | - name: Process_Hosts_For_Provision_And_Resync type: foreach inputCollection: ${ .hosts } iterationParam: "host" outputCollection: "${ .processResult }" actions: - subFlowRef: workflowId: process_hosts_for_provision_and_resync version: 0.1.0 actionDataFilter: fromStateData: '${.host }' transition: S1_SETUP_SUCCESSFUL Loops through the array defined by hosts and with each value in the array defined by the variable hosts as input, and executes a child workflow ' process_hosts_for_provision_and_resync' with version 0.1.0. |
Inject | Injects static data into state data. | - name: SessionFailed type: inject data: error: '${ .results }' Injects an error with the value from '$results'. |