SHEPARD Module API Reference

Source code for SHEPARD Operator and Task Object.

class padocc.groups.shepard.ShepardOperator(mode: str | None = None, conf: dict | str | None = None, verbose: int = 0, dryrun: bool = False, parallel: bool = False, autolog: bool = False)

Operator class for Shepard deployments.

activate() → None

Main operation function to activate the deployment

property bypass: BypassSwitch

Standard bypass switch for shepard operations

clear_all_logs_repeats() → None

Clear repeat IDs and logs from all flocks

property cycle_delay: int

Delay between cycling operations

property cycle_limit: int

Limit for cycling operations

property default_source: str

Default virtual environment is the one currently activated.

delete_logs() → None

Delete logs for all groups

quarantine_flocks() → None

Identify in each flock any projects that have produced an unexpected error.

These projects are transferred from their host flock to the quarantined flock.

run_batch(cycle: int = 1) → None

Run a batch of processes.

scrub_errors() → None

Identify in each flock any projects that have produced an unexpected error.

These projects are backtracked to the start. WARNING: This is an experimental function used to reset the status of whole deployments. Use with great care.

summarise_flocks() → None

Get a top-level view of all flocks.

Single line of information about each flock.

class padocc.groups.shepard.ShepardTask(fid: int, groupID: str, old_phase: str, codeset: list, old_allocation: str | None = None, redo: bool = False, **kwargs)

Store task-specific features in a Task Object.

determine_quarantined(flock)

Determine projects that should be quarantined, separate from main codeset.

get_allocation() → tuple

Determine allocation values for time/memory for this task.

property uid

Gives a unique id for each task based on the flock and the allocation.

The combination is unique for each task.

padocc.groups.shepard.random_hash(length: int)

Where necessary, generate a random hash for unique labelling.