- Fixed blank output from
zocalo.configure_rabbitmqwhen zocalo logging is configured. (#286) - Added OpenTelemetry support: Dispatcher will now append DCID to the current trace. (#295)
- Minimum supported python is now 3.11.
- Switch python packaging backend back to setuptools. (#263)
zocalo.dlq_purge: Show which queues DLQ messages came from, and accept queue names with prefix. (#264)- Allow default zocalo environment to be set by environment variable ZOCALO_DEFAULT_ENV. This takes priority over default in ZOCALO_CONFIG file (#267)
- Support newer versions of workflows package. (#260)
- Fix error attempting to run configurator on default VHost (#259)
- Minimum supported python is now 3.10 (#257)
- Remove deprecated usage of pkg_resources.
- Add example rabbitmq configuration and user files to
contrib/(#245) - Switch python packaging backend to poetry.
- Update pydantic dependency to v2. This probably breaks compatibility with older versions, so major version is bumped.
- Upgrade to Slurm REST API v0.0.40. (#248)
zocalo.configure_rabbitmq: Show explicit error when VHost not created. (#241).
- Add the slurm "prefer" field to
slurm.models.JobProperties. (#244) - Switch zocalo to pyproject.toml, and update CI. (#243)
- Fix dependency declaration for pydantic to constrain maximum version.
zocalo.configure_rabbitmq: non-zero exit code onHTTPError
- Expose
url,version,user_nameanduser_tokenattributes onSlurmRestApiinstances - Load
user_tokenfrom external file inSlurmRestApirather than in thezocalo.configurationSlurm plugin to allow token changes to be picked up without re-loadingzocalo.configuration
- Add minimal wrapper for the Slurm REST API to allow job submission
- Add Slurm
zocalo.configurationplugin
- Add Dockerfile and build-and-push-docker-image GitHub workflow
- Add
zocalo.pickupcommand for re-submitting messages stored in thezocalo.go.fallback_locationwhile the message broker is unavailable
- Add dispatcher service
- Add support for Python 3.11
JSONLinesservice: triggerprocess_messagesimmediately when reaching 100 stored messages
- Add
JSONLinesservice for appending messages to a file in jsonlines format
zocalo.configure_rabbitmqcli: downgrade "No matching queue found" error to warning
zocalo.configure_rabbitmqcli: additional debugging output in event of rareIndexError
zocalo.configure_rabbitmqcli: enable configuration of vhosts
- Remove deprecated
zocalo.enable_graylog()function - Use
LoggingAdapterto appendrecipe_IDto wrapper logs. This was inadvertantly broken for the logging plugin added in #176. Derived wrappers should now use self.log rather than instantiating a logger directly.
zocalo.wrapper: Enable access tozocalo.configurationobject throughBaseWrapper.configattributezocalo.configure_rabbitmqcli: check response status codes to catch failed API callszocalo.configure_rabbitmqcli: don't set x-single-active-consumer for streams
zocalo.configure_rabbitmqcli: require passing user config via explicit--user-configparameterzocalo.configure_rabbitmqcli: optionally disable implicit dlq creation viadead-letter-queue-create: false
zocalo.configure_rabbitmqcli: require explicit dead-letter-routing-key-pattern when requesting creation of a DLQ for a given queue.
zocalo.configure_rabbitmqcli: advanced binding configuration
- Added a logging configuration plugin to comprehensively configure logging across applications.
zocalo.configure_rabbitmqcli:- Support for explicitly declaring exchanges
- Allow queues to bind to more than one exchange
- Add
Mailerservice for sending email notifications. Subscribes to themailnotificationqueue. SMTP settings are specified via thesmtpplugin inzocalo.configuration.
- Fix for getting user information from the RabbitMQ management API
- Major changes to the RabbitMQ configuration command line tool.
Users are now updated and deleted, and the tool now understands
zocalo environment parameters. Configuration files are now
mandatory, and the
--seedparameter has been removed.
zocalo.dlq_purgeoffers a--locationflag to override where files are being writtenzocalo.dlq_reinjectcan again understandzocalo.dlq_purgeoutput passed on stdin- Reinjected messages now carry a
dlq-reinjected: Trueheader field
zocalo.queue_drainnow allows the automatic determination of destination queues for recipe messageszocalo.queue_drainfixed for use in a RabbitMQ environmentzocalo.dlq_purgefixed for use in a RabbitMQ environment- New functions in
zocalo.utilto easily annotate log messages with system context information
- Add support for queue/exchange bindings to
RabbitMQAPI - Drop support for Python 3.6 and 3.7
- Add a RabbitMQ HTTP API in
zocalo.util.rabbitmq
- Add command line tools for handling dead-letter messages
zocalo.dlq_checkchecks dead-letter queues for messageszocalo.dlq_purgeremoves messages from specified DLQs and dumps them to a directory specified in the Zocalo configurationzocalo.dlq_reinjecttakes a serialised message produced byzocalo.dlq_purgeand places it back on a queue- Use
argparsefor all command line tools and make use ofworkflowstransport argument injection. Minimumworkflowsversion is now 2.14 - New
zocalo.util.rabbitmq.RabbitMQAPI()providing a thin wrapper around the RabbitMQ HTTP API
- New
zocalo.shutdowncommand to shutdown Zocalo services - New
zocalo.queue_draincommand to drain one queue into another in a controlled manner - New
zocalo.util.rabbitmq.http_api_request()utility function to return aurllib.request.Requestobject to query the RabbitMQ API using the credentials specified viazocalo.configuration. zocalo.wrapnow emits tracebacks on hard crashes andSIGUSR2signals
- Expand ~ in paths in configuration files
- Removed --live/--test command line arguments, use -e/--environment instead
- zocalo.go, zocalo.service, zocalo.wrap accept -t/--transport command line options, and the default can be set via the site configuration.
- Keep wrapper status threads alive through transport disconnection events
- Support for Zocalo configuration files
- Documentation improvements
- Ignore error when logserver hostname can't be looked up immediately
- Add a symbolic link handling library function
- Cache the logserver hostname by default
- Add a --dry-run option to zocalo.go
- Drop support for Python 3.5
- Update language constructs for Python 3.6+
- Add support for Python 3.9
- Remove stomp.py requirement - this is pulled in via workflows only
- Set live flag in service environment if service started with '--live'
- Start moving dlstbx scripts to zocalo package: * zocalo.go * zocalo.wrap
- Entry point 'dlstbx.wrappers' has been renamed 'zocalo.wrappers'
- Dropped Python 3.4 support
- Compatibility fixes for graypy >= 1.0
- Don't attempt to load non-existing file
- Fix packaging bug which meant files were missing from the release
- Add zocalo.service command to start services
- Add status notification thread logic
- Add schlockmeister service and base wrapper class
- Add function to enable logging to graylog
- First release on PyPI.