ecluse
Safe HaskellNone
LanguageGHC2021

Ecluse.Dredger.Plan

Description

The Dredger's pure decisions over its resolved configuration and its invocation, so Ecluse.Dredger dispatches on their results instead of branching inside IO.

Synopsis

Documentation

data DredgerOptions Source #

What ecluse dredger's own flags settled, carried from the command line to the sweep.

Constructors

DredgerOptions 

Fields

Instances

Instances details
Show DredgerOptions Source # 
Instance details

Defined in Ecluse.Dredger.Plan

Eq DredgerOptions Source # 
Instance details

Defined in Ecluse.Dredger.Plan

data SweepMode Source #

Whether the run deletes, or previews what a run that deletes would reach.

Constructors

SweepDeletes

Versions a named decisive deny condemns are deleted.

SweepPreviews

Nothing is deleted, because the run holds no capability that could.

Instances

Instances details
Show SweepMode Source # 
Instance details

Defined in Ecluse.Dredger.Plan

Eq SweepMode Source # 
Instance details

Defined in Ecluse.Dredger.Plan

data SweepRepetition Source #

Whether the role cycles for the life of the process, or runs one cycle and exits.

Constructors

SweepContinuously

Cycle, pause, cycle again, under supervision. The shipped invocation.

SweepOnce

One cycle, then exit with what that cycle did. --once, which the harness drives.

dredgerBootRole :: SweepMode -> BootRole Source #

The role a Dredger invocation boots under, settled from its own flags before the boot's vetting pass runs, so the pass and the runtime agree on what the process may do to a store.

sweepPacingFor :: AppConfig -> Int -> (SweepPacing, [Text]) Source #

The pacing, the per-cycle cap, and the shape the dredger group settled over the stores a cycle sweeps, beside the boot lines naming where each resolved bound came from.

sweepReportFor :: SweepMode -> SweepReport Source #

How a run reports what it removed. A preview counts under its own arm and past the cap, so it reports the full reach a real run would have rather than stopping at the breaker.

waitsForAdvisories :: [SweepMount] -> Bool Source #

Whether a first cycle waits for the first advisory sync. A rule set with no advisory rule never needs one, so it starts at once.

advisoryWaitAttempts :: SweepPacing -> Int Source #

How many times a first cycle checks for the advisory sync before it starts anyway. The bound is the cycle pause, so waiting never costs more than one cycle's worth of time.

advisoryPollMicros :: Int Source #

How long the first cycle waits between checks for the advisory sync.

cycleEnding :: SweepMode -> CycleOutcome -> Maybe Text Source #

What a one-shot run reports as its own ending, or Nothing where it ends cleanly. A run that deletes ends on the halt its cycle raised, and a preview ends on completeness alone.

haltDetail :: CycleHalt -> Text Source #

The detail a halted one-shot run reports as its own non-zero ending, so a scheduler reads the outcome from the status and the reason from the same line.