ecluse
Safe HaskellNone
LanguageGHC2021

Ecluse.Composition.Executable

Description

The boot's effectful planning phase: take the cleared BootPlan and yield the ExecutablePlan the booting role assembles its runtime from.

Every role plans through here, so a refusal only a live environment can settle is spent at one gate whatever the role, and holding an ExecutablePlan means nothing downstream refuses to boot. A listener that fails to bind is a runtime fault for supervision, not a refusal. ecluse check-config makes no cloud call, so it stops at the BootPlan and never reaches here.

Synopsis

Documentation

data ExecutablePlan Source #

The boot's post-gating artefact: the cleared plan, and the wiring only a live environment could settle. planExecutable is its one producer, so a role cannot assemble an unvetted one.

data RoleWiring Source #

What each role's arm settled. A role starts from its own arm, so wiring one role's boot planned cannot reach another role's runtime.

Constructors

MirrorPipelineWiring MirrorWiring

ecluse proxy, ecluse proxy --no-worker and ecluse mirror.

StorePrunerWiring PrunerWiring

ecluse dredger: the stores it sweeps, and what decides for each of them.

PilotWiring ExportLoopPlan

ecluse pilot: the export loop the advisory settings and the vetted mounts name.

data MirrorWiring Source #

What a mirror-pipeline role's arm settled, and all Ecluse.Service assembles its runtime from.

data PrunerWiring Source #

What the store pruner's arm settled: one sweepable mount per cleared store, and the advisory sync the sweep's rules read. Ecluse.Dredger assembles the whole role from it.

type BuildMirrorQueue = LogEnv -> Int -> MirrorQueuePlan -> IO MirrorQueue Source #

How a boot builds the selected mirror-queue backend. Injected, as the adapter resolver is, so a spec can drive this phase's refusals without reaching a cloud.

type BuildCredentials = (Ecosystem -> StoreTag -> CredentialReporters) -> [((Ecosystem, CredentialTarget), StoreBackend)] -> IO (Either [BootError] CredentialProviders) Source #

Build only credentials for the targets cleared by this boot role.

planExecutable :: LogEnv -> TracingPort -> ResolveAdapter -> BuildMirrorQueue -> BuildCredentials -> StoreBuilds -> BootPlan -> IO ([Advisory], Either [BootError] ExecutablePlan) Source #

Plan the runtime the cleared plan's role starts, or report every refusal only a live environment can settle. Each role has one arm here, and a refusal is spent once for all of them.