diff --git a/doc/source/dsl/dsl_v2.rst b/doc/source/dsl/dsl_v2.rst index 98a8b9c42..ac5437914 100644 --- a/doc/source/dsl/dsl_v2.rst +++ b/doc/source/dsl/dsl_v2.rst @@ -70,7 +70,7 @@ exact steps should be made during workflow execution. YAML example ^^^^^^^^^^^^ -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -167,7 +167,7 @@ produce output. In Mistral DSL v2 task can be associated with an action or a workflow. In the example below there are two tasks of different types: -.. code-block:: yaml +.. code-block:: mistral action_based_task:   action: std.http url='openstack.org' @@ -234,7 +234,7 @@ configured policies. YAML example -.. code-block:: yaml +.. code-block:: mistral my_task:   action: my_action @@ -297,7 +297,7 @@ Defines a pattern how task should be repeated in case of an error. Retry policy can also be configured on a single line as: -.. code-block:: yaml +.. code-block:: mistral task1:   action: my_action @@ -313,7 +313,7 @@ parameters in two ways: Full syntax: -.. code-block:: yaml +.. code-block:: mistral my_task:   action: std.http @@ -323,7 +323,7 @@ Full syntax: Simplified syntax: -.. code-block:: yaml +.. code-block:: mistral my_task:   action: std.http url="http://mywebsite.org" method="GET" @@ -332,7 +332,7 @@ The same rules apply to tasks associated with workflows. Full syntax: -.. code-block:: yaml +.. code-block:: mistral my_task:   workflow: some_nested_workflow @@ -342,7 +342,7 @@ Full syntax: Simplified syntax: -.. code-block:: yaml +.. code-block:: mistral my_task:   workflow: some_nested_workflow param1='val1' param2='val2' @@ -369,7 +369,7 @@ Figure 1. Mistral Direct Workflow. YAML example '''''''''''' -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -435,7 +435,7 @@ access any data produced by upstream tasks. So in the example above task 'create_vm' could also have a YAQL expression on transition to task 'send_success_email' as follows: -.. code-block:: yaml +.. code-block:: mistral create_vm:  ... @@ -452,7 +452,7 @@ Fork There are situations when we need to be able to run more than one task after some task has completed. -.. code-block:: yaml +.. code-block:: mistral create_vm:   ... @@ -472,7 +472,7 @@ branches and aggregate their data. Full Join (join: all) -.. code-block:: yaml +.. code-block:: mistral register_vm_in_load_balancer:   ... @@ -502,7 +502,7 @@ of guard expressions. Partial Join (join: 2) -.. code-block:: yaml +.. code-block:: mistral register_vm_in_load_balancer:  ... @@ -559,7 +559,7 @@ route in the directed graph from **T1** to **T3** or **T4**. YAML example '''''''''''' -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -606,7 +606,7 @@ Processing collections YAML example '''''''''''' -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -648,7 +648,7 @@ an expression in the form: in <% YAQL_expression %>. The most common form is: -.. code-block:: yaml +.. code-block:: mistral with-items:   - var1 in <% YAQL_expression_1 %> @@ -696,7 +696,7 @@ state to error. Example: -.. code-block:: yaml +.. code-block:: mistral manual_fail: action: std.fail @@ -730,7 +730,7 @@ Input parameters: Example: -.. code-block:: yaml +.. code-block:: mistral http_task:   action: std.http url='google.com' @@ -773,7 +773,7 @@ Sends an email message via SMTP protocol. Example: -.. code-block:: yaml +.. code-block:: mistral send_email_task:   action: std.email @@ -802,7 +802,7 @@ Input parameters: executed. *Required*. - **host** - Host name that the command needs to be executed on. *Required*. -- **username** - User name to authenticate on the host. *Required*. +- **username** - User name to authenticate on the host. *Required*. - **password** - User password to to authenticate on the host. *Optional*. - **private_key_filename** - Private key file name which will be used for authentication on remote host. All private keys should be on executor host in **/.ssh/**. @@ -855,7 +855,7 @@ its wrapper - PyV8. For installing it, do the next steps: Example: -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -886,7 +886,7 @@ Example: Another example for getting the current date and time: -.. code-block:: yaml +.. code-block:: mistral   ---   version: '2.0' @@ -924,7 +924,7 @@ action around another ad-hoc action). YAML example '''''''''''' -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -948,7 +948,7 @@ YAML example Once this action is uploaded to Mistral any workflow will be able to use it as follows: -.. code-block:: yaml +.. code-block:: mistral my_workflow:  tasks: @@ -1008,7 +1008,7 @@ So after a workbook has been uploaded its workflows and actions become independe YAML example '''''''''''' -.. code-block:: yaml +.. code-block:: mistral --- version: '2.0' @@ -1139,7 +1139,7 @@ Example: Workflow definition: -.. code-block:: yaml +.. code-block:: mistral --- version: "v2.0" diff --git a/mistral/ext/pygmentplugin.py b/mistral/ext/pygmentplugin.py index f4da6f06a..0c6a20ddd 100644 --- a/mistral/ext/pygmentplugin.py +++ b/mistral/ext/pygmentplugin.py @@ -10,6 +10,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +import re + from pygments import lexer from pygments import token @@ -19,9 +21,12 @@ class MistralLexer(lexer.RegexLexer): name = 'Mistral' aliases = ['mistral'] + flags = re.MULTILINE | re.UNICODE + tokens = { "root": [ - (r'^(\s)*(workflows|tasks|input|type)(\s)*:', token.Keyword), + (r'^(\s)*(workflows|tasks|input|output|type)(\s)*:', + token.Keyword), (r'^(\s)*(version|name|description)(\s)*:', token.Keyword), (r'^(\s)*(publish|timeout|retry|with\-items)(\s)*:', token.Keyword), @@ -48,10 +53,12 @@ class MistralLexer(lexer.RegexLexer): lexer.default('#pop'), ], "generic": [ - (r'(\-|:|=|!|\[|\])', token.Operator), + (r'%>', token.Name.Entity, '#pop'), + (r'}\\}', token.Name.Entity, '#pop'), + (r'(\-|:|=|!|\[|\]|<|>|\/|\*)', token.Operator), (r'(null|None|True|False)', token.Name.Builtin), (r'"(\\\\|\\"|[^"])*"', token.String.Double), (r"'(\\\\|\\'|[^'])*'", token.String.Single), - (r'\w|\s|\(|\)|,|\.', token.Text), + (r'\W|\w|\s|\(|\)|,|\.', token.Text), ] }