Add definition property to OS::Mistral::Workflow

Registered by Sharon Mendel-Brin on 2015-12-30

Currently in order to use OS::Mistral::Workflow resource type one needs to embed the Mistral workflow DSL in the Heat Template. This leads to the following issues:
* Very tight coupling between the Mistral DSL and HOT DSL - every time the Mistral DSL changes - these changes needs to be reflected in the HOT schema.
* Tight coupling between Heat version and Mistral version - for example, working with Heat Liberty and Mistral Mitaka, you will not be able to use Mistral Mitaka DSL features.
* In order to match HOT schema style, the embedded workflow DSL is different than the original Mistral DSL, for example “on_success” instead of “on-success” this causes a situation where one needs to rewrite the workflow in order to embed it in HOT.
The suggested solution: Add a "definition" property to OS::Mistral::Workflow that can take the entire template exactly like written in Mistral. Usually it will be used with the “get_file” function.

In addition, workflow name in Mistral is unique per tenant meaning that if one uses a hard coded string in the name property, the stack will fail to be deployed more than once due to a unique workflow name violation in Mistral. The current workaround is to generate a dynamic name which is a combination of the workflw and the OS::stack_id.
The suggested solution: adopt the approach taken in other resource types where the name will be generated automatically.
In the workflow-create API, Heat will provide Mistral with the workflow definition and workflow name (This name will override the name stated in the definition). This requires an update of the API in Mistral.

Following the above changes many of the OS::Mistral::Workflow reource type properties will become redundent an so will be marked as deprecated. The properties that should remain are:
    - name - Optional., to allow the user to explicitly set the name, otherwise it will be autogenerated
    - definition
    - input
    - params
    - use_request_body_as_input

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Sharon Mendel-Brin
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.