Files
mistral/doc/source/contributor/creating_custom_action.rst
Dougal Matthews e1e6c7a0cf Update the Custom Action documentation to use mistral-lib
We should have updated this some time ago. Importing mistral itself
hasn't been the best way to write actions for a while.

Change-Id: I27df8865f8fef81fcfd1cb3de1a2bde6c6281cf6
2018-07-23 14:14:40 +01:00

1.1 KiB

How to write a Custom Action

  1. Write a class inherited from mistral.actions.base.Action
from mistral_lib import actions

class RunnerAction(actions.Action):
    def __init__(self, param):
        # store the incoming params
        self.param = param

    def run(self):
        # return your results here
        return {'status': 0}
  1. Publish the class in a namespace (in your setup.cfg)
[entry_points]
mistral.actions =
    example.runner = my.mistral_plugins.somefile:RunnerAction
  1. Install the Python package containing the action. If this was added to Mistral itself it will need to be reinstalled.
  2. Run the following command so Mistral discovers the new action
$ mistral-db-manage --config-file <path-to-config> populate
  1. Now you can call the action example.runner
my_workflow:
  tasks:
    my_action_task:
      action: example.runner
      input:
        param: avalue_to_pass_in