Configure ewoksserver#
ewoksserver can be configured by declaration the following variables in a Python file:
RESOURCE_DIRECTORY(string): defines the path to the resource folder where workflows, tasks, icons are stored. Equivalent to the--dir/-dcommand line argument.EWOKS(dict): Configuration of ewoks handlers. See the Ewoks events section below.CELERY(dict): Configuration of Celery to allow launching workflows in ewoks workers.
Example:
# /tmp/config.py
RESOURCE_DIRECTORY = "/path/to/resource/directory/"
EWOKS = {"handlers": ...}
CELERY = {"broker_url":...}
The path to configuration file can then be passed through the --config command line argument:
ewoks-server --config /tmp/config.py
The environment variable EWOKSSERVER_SETTINGS can be used instead:
export EWOKSSERVER_SETTINGS=/tmp/config.py
ewoks-server
Ewoks events#
When executing workflows, ewoksserver can send ewoks events through a Socket.IO connection. Events are stored in a database by ewoksjob which needs further configuration.
ewoksjob supports redis and sql as databases. So first, one of these must be installed (here we choose sql):
pip install ewoksjob[sql]
Then, in the configuration of ewoks-server, the EWOKS handler must be appropriately set:
# /tmp/config.py
EWOKS = {
"handlers": [
{
"class": "ewokscore.events.handlers.Sqlite3EwoksEventHandler",
"arguments": [
{
"name": "uri",
"value": "file:/any/path/ewoks_events.db",
}
],
}
]
}
If the server displays on start-up that the EWOKS handlers are properly set, it means that ewoks events are ready to be sent when executing workflows:
$ ewoks-server -c /tmp/config.py
<...>
EWOKS:
{'handlers': [{'arguments': [{'name': 'uri',
'value': 'file:/home/huder/ewoksserver_resources/ewoks_events.db'}],
'class': 'ewokscore.events.handlers.Sqlite3EwoksEventHandler'}]}
<...>