Skip to main content

structure

Azul-runner is split into modules based on related functionality.

All names necessary for plugins are imported into the package namespace, so users can simply write from azul_runner import thing.

Class Diagram

Sequence Diagram

Simple case for looping plugin execution.

binary_plugin.py

Subclass of Plugin designed for processing binary files.

coordinator.py

Handle full Plugin execution loop.

dispatcher.py

Handle interaction with dispatcher restapi.

identify.py

Python implementation of the Dispatcher identify code.

It is intended for use during plugin tests only.

main.py

CLI based execution of plugins for local testing or remote deployment.

models.py

Data structures used by plugins to record job results, such as features, info, data.

monitor.py

Uses multiprocessing to monitor the process of a plugin running in coordinator and track memory and create heartbeat events.

network_transform.py

Transform models to/from network event format and runner internal format.

network.py

Higher level interactions with Azul Dispatcher vs dispatcher.py.

plugin_executor.py

Execute Plugin with Job and return JobResult instance.

plugin.py

Plugin template for handling plugin metadata and execution methods.

settings.py

Plugin settings, using pydantic environment parsing.

storage_spooled.py

Guarantee a valid path to a SpooledTemporaryFile after rollover has occurred.

storage.py

Defines a file-like interface to S3-compatible storage.

Used by plugins to access event binary data.

test_template.py

Contains a template test case class to simplify testing of Azul plugins.