Create a third-party plugin for Watcher¶
Watcher provides a plugin architecture which allows anyone to extend the existing functionalities by implementing third-party plugins. This process can be cumbersome so this documentation is there to help you get going as quickly as possible.
We assume that you have set up a working Watcher development environment. So if this not already the case, you can check out our documentation which explains how to set up a development environment.
Third party project scaffolding¶
$ virtualenv thirdparty $ . thirdparty/bin/activate $ pip install cookiecutter $ cookiecutter https://github.com/openstack-dev/cookiecutter
The last command will ask you for many information, and If you set
thirdparty, you should end up with a
structure that looks like this:
$ cd thirdparty $ tree . . ├── babel.cfg ├── CONTRIBUTING.rst ├── doc │ └── source │ ├── conf.py │ ├── contributing.rst │ ├── index.rst │ ├── installation.rst │ ├── readme.rst │ └── usage.rst ├── HACKING.rst ├── LICENSE ├── MANIFEST.in ├── README.rst ├── requirements.txt ├── setup.cfg ├── setup.py ├── test-requirements.txt ├── thirdparty │ ├── __init__.py │ └── tests │ ├── base.py │ ├── __init__.py │ └── test_thirdparty.py └── tox.ini
Note: You should add python-watcher as a dependency in the requirements.txt file:
# Watcher-specific requirements python-watcher
Implementing a plugin for Watcher¶
Now that the project skeleton has been created, you can start the implementation of your plugin. As of now, you can implement the following plugins for Watcher:
A workflow engine plugin
If you want to learn more on how to implement them, you can refer to their dedicated documentation.