Jump to: navigation, search

Difference between revisions of "Mistral/DSLv2"

Line 6: Line 6:
  
 
==== Workflow Types ====
 
==== Workflow Types ====
 +
 +
TODO
 +
 +
==== Common Workflow Attributes ====
 +
 +
TODO
 +
 +
==== Tasks ====
 +
 +
TODO
 +
 +
==== Common Task Attributes ====
 +
 +
* '''action''' - name of action to run
 +
* '''workflow''' - name of workflow to run
 +
* '''input''' - actual parameters for the task, each value can be either some number, string etc, or YAQL expression to retrieve value from task context
  
 
==== Direct Workflow ====
 
==== Direct Workflow ====
 +
 +
TODO
  
 
===== Attributes =====
 
===== Attributes =====
Line 13: Line 31:
 
* '''tasks''' - list of tasks in this workflow, each task represents a computational step in the workflow.
 
* '''tasks''' - list of tasks in this workflow, each task represents a computational step in the workflow.
  
===== Direct Workflow Task =====
+
===== Direct Workflow Task Attributes =====
  
Represents a step in workflow, for example 'TODO'
+
TODO
 
 
====== Attributes ======
 
  
* '''action''' - name of action to perform
 
* '''workflow''' - name of workflow to perform
 
* '''input''' - actual parameters for the task, each value can be either some number, string etc, or YAQL expression to retrieve value from task context
 
 
* '''on-success''' - task which will be scheduled on execution after current task has finished with state 'SUCCESS'
 
* '''on-success''' - task which will be scheduled on execution after current task has finished with state 'SUCCESS'
 
* '''on-error''' - task which will be scheduled on execution after current task has finished with state 'ERROR'
 
* '''on-error''' - task which will be scheduled on execution after current task has finished with state 'ERROR'
 
* '''on-finish''' - task which will be scheduled on execution after current task has finished  
 
* '''on-finish''' - task which will be scheduled on execution after current task has finished  
  
===== YAML example: ======
+
===== Direct Workflow YAML example =====
  
 
'''TODO'''
 
'''TODO'''
Line 36: Line 49:
 
* '''tasks''' - list of tasks in this workflow, each task represents a computational step in the workflow.
 
* '''tasks''' - list of tasks in this workflow, each task represents a computational step in the workflow.
  
===== Reverse Workflow Task =====
+
===== Reverse Workflow Task Attributes =====
  
Represents a step in workflow, for example 'TODO'
+
'''TODO'''
  
====== Attributes ======
 
 
* '''action''' - name of action to perform
 
* '''workflow''' - name of workflow to perform
 
 
* '''requires''' - list of tasks which should be execute before this tasks, or list of task names as a keys and condition as a value, this is optional parameter
 
* '''requires''' - list of tasks which should be execute before this tasks, or list of task names as a keys and condition as a value, this is optional parameter
* '''input''' - actual parameters for the task, each value can be either some number, string etc, or YAQL expression to retrieve value from task context
 
  
===== YAML example: =====
+
===== Reverse Workflow YAML example =====
  
 
'''TODO'''
 
'''TODO'''
Line 53: Line 61:
 
=== Actions ===
 
=== Actions ===
  
TODO
+
'''TODO''': Mention system and ad-hoc actions
  
 
==== Attributes ====
 
==== Attributes ====
Line 63: Line 71:
 
* '''output''' - any data structure defining how to transform the output of base action into the output of this action. I can optionally have YAQL expressions to access properties of base action output. (See more about YAQL at https://pypi.python.org/pypi/yaql/0.3)
 
* '''output''' - any data structure defining how to transform the output of base action into the output of this action. I can optionally have YAQL expressions to access properties of base action output. (See more about YAQL at https://pypi.python.org/pypi/yaql/0.3)
  
==== YAML example: ====
+
==== YAML example ====
  
 
'''TODO'''
 
'''TODO'''
Line 77: Line 85:
 
'''TODO'''
 
'''TODO'''
  
==== YAML example: ====
+
==== YAML example ====
  
 
'''TODO'''
 
'''TODO'''
Line 89: Line 97:
 
'''TODO'''
 
'''TODO'''
  
==== YAML example: ====
+
==== Workbook YAML example ====
  
 
'''TODO'''
 
'''TODO'''

Revision as of 20:36, 23 September 2014

Mistral DSL version 2 specification

Workflows

TODO

Workflow Types

TODO

Common Workflow Attributes

TODO

Tasks

TODO

Common Task Attributes

  • action - name of action to run
  • workflow - name of workflow to run
  • input - actual parameters for the task, each value can be either some number, string etc, or YAQL expression to retrieve value from task context

Direct Workflow

TODO

Attributes
  • tasks - list of tasks in this workflow, each task represents a computational step in the workflow.
Direct Workflow Task Attributes

TODO

  • on-success - task which will be scheduled on execution after current task has finished with state 'SUCCESS'
  • on-error - task which will be scheduled on execution after current task has finished with state 'ERROR'
  • on-finish - task which will be scheduled on execution after current task has finished
Direct Workflow YAML example

TODO

Reverse Workflow

Attributes
  • tasks - list of tasks in this workflow, each task represents a computational step in the workflow.
Reverse Workflow Task Attributes

TODO

  • requires - list of tasks which should be execute before this tasks, or list of task names as a keys and condition as a value, this is optional parameter
Reverse Workflow YAML example

TODO

Actions

TODO: Mention system and ad-hoc actions

Attributes

  • name - action name (string without space, mandatory attribute).
  • base - name of base action that this action is built on top of.
  • base-input - dictionary whose structure is defined by action class. For example, for 'std.http' action it contains 'url', 'method', 'body' and 'headers' according to HTTP protocol specification.
  • input - list containing parameter names which should or could be specified in task. This attribute is optional and used only for documenting purposes.
  • output - any data structure defining how to transform the output of base action into the output of this action. I can optionally have YAQL expressions to access properties of base action output. (See more about YAQL at https://pypi.python.org/pypi/yaql/0.3)

YAML example

TODO

Triggers

NOTE: Triggers are implemented as part of version 0.1.0, they will be included into 0.2.0

Using triggers it is possible to run workflows according to specific rules: periodically setting a cron (http://en.wikipedia.org/wiki/Cron) pattern or on external events like ceilometer alarm.

Attributes

TODO

YAML example

TODO

Workbooks

TODO

Attributes

TODO

Workbook YAML example

TODO