Server configuration#
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_EXECUTION(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_EXECUTION = {"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_EXECUTION parameter must define the
appropriate “handlers”:
# /tmp/config.py
EWOKS_EXECUTION = {
"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_EXECUTION parameter has “handlers”,
it means that ewoks events are ready to be sent when executing workflows:
$ ewoks-server -c /tmp/config.py
<...>
EWOKS_EXECUTION:
{'handlers': [{'arguments': [{'name': 'uri',
'value': 'file:/home/huder/ewoksserver_resources/ewoks_events.db'}],
'class': 'ewokscore.events.handlers.Sqlite3EwoksEventHandler'}]}
<...>