Orchestrator package.


Workflow and operation decorators.

aria.orchestrator.decorators.operation(func=None, toolbelt=False, suffix_template='', logging_handlers=None)

Operation decorator.

aria.orchestrator.decorators.workflow(func=None, suffix_template='')

Workflow decorator.

Orchestrator events.


Orchestrator exceptions.

exception aria.orchestrator.exceptions.ActiveExecutionsError

Bases: aria.exceptions.AriaError

Raised when attempting to execute a workflow on a service which already has an active execution

exception aria.orchestrator.exceptions.InvalidPluginError

Bases: aria.exceptions.AriaError

Raised when an invalid plugin is validated unsuccessfully

exception aria.orchestrator.exceptions.InvalidWorkflowRunnerParams

Bases: aria.exceptions.AriaError

Raised when invalid combination of arguments is passed to the workflow runner

exception aria.orchestrator.exceptions.OrchestratorError

Bases: aria.exceptions.AriaError

Orchestrator based exception

exception aria.orchestrator.exceptions.PluginAlreadyExistsError

Bases: aria.exceptions.AriaError

Raised when a plugin with the same package name and package version already exists

exception aria.orchestrator.exceptions.TaskAbortException

Bases: exceptions.RuntimeError

Used internally when ctx.task.abort is called

exception aria.orchestrator.exceptions.TaskRetryException(message, retry_interval=None)

Bases: exceptions.RuntimeError

Used internally when ctx.task.retry is called

exception aria.orchestrator.exceptions.UndeclaredWorkflowError

Bases: aria.exceptions.AriaError

Raised when attempting to execute an undeclared workflow

exception aria.orchestrator.exceptions.WorkflowImplementationNotFoundError

Bases: aria.exceptions.AriaError

Raised when attempting to import a workflow’s code but the implementation is not found


Plugin management.

class aria.orchestrator.plugin.PluginManager(model, plugins_dir)

Bases: object

Parameters:plugins_dir – root directory in which to install plugins

Install a wagon plugin.

load_plugin(plugin, env=None)

Load the plugin into an environment.

Loading the plugin means the plugin’s code and binaries paths will be appended to the environment’s PATH and PYTHONPATH, thereby allowing usage of the plugin.

  • plugin – plugin to load
  • env – environment to load the plugin into; If None, os.environ will be used
static validate_plugin(source)

Validate a plugin archive.

A valid plugin is a wagon in the zip format (suffix may also be .wgn).


Running workflows.

class aria.orchestrator.workflow_runner.WorkflowRunner(model_storage, resource_storage, plugin_manager, execution_id=None, service_id=None, workflow_name=None, inputs=None, executor=None, task_max_attempts=30, task_retry_interval=30)

Bases: object

Manages a single workflow execution on a given service.

  • workflow_name – workflow name
  • service_id – service ID
  • inputs – key-value dict of inputs for the execution
  • model_storage – model storage API (“MAPI”)
  • resource_storage – resource storage API (“RAPI”)
  • plugin_manager – plugin manager
  • executor – executor for tasks; defaults to a ProcessExecutor instance
  • task_max_attempts – maximum attempts of repeating each failing task
  • task_retry_interval – retry interval between retry attempts of a failing task