| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Ecluse.Core.Registry.Sweep.Outcome
Description
What one sweep cycle did, why it stopped early if it did, and what it could not read.
A count is only as good as the evidence behind it, so a cycle reports its halt and its gaps beside its tally rather than folding them in. The rendered lines are the operator's, so their wording is the reported behaviour.
Synopsis
- data SweepTally = SweepTally {
- tallyExamined :: Int
- tallyDeleted :: Int
- tallyKept :: Int
- tallyGuardSkipped :: Int
- data CycleHalt
- data CycleOutcome = CycleOutcome {}
- outcomeComplete :: CycleOutcome -> Bool
- latches :: CycleHalt -> Bool
- renderCycleHalt :: CycleHalt -> Text
- renderGeneration :: Maybe DbEtag -> Text
- renderTally :: SweepTally -> Text
- renderStoreFault :: StoreFault -> Text
- storeSubject :: Ecosystem -> Text -> Text
- data TargetPrerequisites = TargetPrerequisites {}
- data PrerequisiteStatus
- prerequisitesMet :: TargetPrerequisites -> Bool
- renderPrerequisites :: TargetPrerequisites -> Text
- data EvidenceGaps = EvidenceGaps {}
- unloadedGeneration :: EvidenceGaps
- unreadManifest :: EvidenceGaps
- evidenceComplete :: EvidenceGaps -> Bool
- renderEvidenceGaps :: EvidenceGaps -> Text
What one cycle did
data SweepTally Source #
What one cycle did with the versions it examined.
Constructors
| SweepTally | |
Fields
| |
Instances
| Monoid SweepTally Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods mempty :: SweepTally # mappend :: SweepTally -> SweepTally -> SweepTally # mconcat :: [SweepTally] -> SweepTally # | |
| Semigroup SweepTally Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods (<>) :: SweepTally -> SweepTally -> SweepTally # sconcat :: NonEmpty SweepTally -> SweepTally # stimes :: Integral b => b -> SweepTally -> SweepTally # | |
| Show SweepTally Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods showsPrec :: Int -> SweepTally -> ShowS # show :: SweepTally -> String # showList :: [SweepTally] -> ShowS # | |
| Eq SweepTally Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome | |
Why a cycle stopped before it finished.
Constructors
| HaltConsentWithheld Ecosystem Text Text | The store carries no consent marker, with the backend and its how-to-attach text. |
| HaltStorePreserved Ecosystem Text Text | The store refills itself from elsewhere, so deleting from it changes nothing. |
| HaltDeletionCap Int Int (Maybe DbEtag) | The cycle reached its deletion cap, carrying the cap, what it handed over, and the advisory generation of the denial that reached it. No later cycle runs. |
| HaltStoreFault Ecosystem Text Text | A store call produced no answer and its retry advice ran out, carrying the fault. |
| HaltBucketUnsplittable Ecosystem Text Text | A bucket outgrew the memory budget and nothing narrows it further, so the walk cannot read it within the budget. |
data CycleOutcome Source #
One cycle's result: what it did, why it stopped early if it did, and what it could not read.
Constructors
| CycleOutcome | |
Fields
| |
Instances
| Show CycleOutcome Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods showsPrec :: Int -> CycleOutcome -> ShowS # show :: CycleOutcome -> String # showList :: [CycleOutcome] -> ShowS # | |
| Eq CycleOutcome Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome | |
outcomeComplete :: CycleOutcome -> Bool Source #
Whether a cycle's counts cover what they claim to: it walked the whole store it was given, and every rule that decided read the facts it needed. Nothing about permission enters here.
latches :: CycleHalt -> Bool Source #
Whether a halt stops the Dredger for the life of the process. Only the cap does, because a breaker that re-closes itself is not a breaker. Every other halt is re-read next cycle.
renderCycleHalt :: CycleHalt -> Text Source #
The operator-facing text of a halt, naming the backend that raised it and what to fix.
renderGeneration :: Maybe DbEtag -> Text Source #
The advisory generation an audit line names, or that none was loaded.
renderTally :: SweepTally -> Text Source #
One cycle's counts, as its closing line reports them.
renderStoreFault :: StoreFault -> Text Source #
A store fault as an operator reads it: the transport's own cause and its bounded detail.
storeSubject :: Ecosystem -> Text -> Text Source #
Name a store without assuming whether it is the mirror or private target.
What a preview found standing in a real sweep's way
data TargetPrerequisites Source #
One target's standing permissions as a preview found them.
Constructors
| TargetPrerequisites | |
Fields
| |
Instances
| Show TargetPrerequisites Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods showsPrec :: Int -> TargetPrerequisites -> ShowS # show :: TargetPrerequisites -> String # showList :: [TargetPrerequisites] -> ShowS # | |
| Eq TargetPrerequisites Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods (==) :: TargetPrerequisites -> TargetPrerequisites -> Bool # (/=) :: TargetPrerequisites -> TargetPrerequisites -> Bool # | |
data PrerequisiteStatus Source #
What a preview could see of one standing permission. A preview exercises none of them, so an unmet one is reported and never acted on.
Constructors
| PrerequisiteMet | The store answered, and a real sweep would pass this one. |
| PrerequisiteUnmet Text | The store answered, and a real sweep would stop here, carrying the backend's own text. |
| PrerequisiteUnread Text | The store did not answer, so nothing the preview read settles it. |
Instances
| Show PrerequisiteStatus Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods showsPrec :: Int -> PrerequisiteStatus -> ShowS # show :: PrerequisiteStatus -> String # showList :: [PrerequisiteStatus] -> ShowS # | |
| Eq PrerequisiteStatus Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods (==) :: PrerequisiteStatus -> PrerequisiteStatus -> Bool # (/=) :: PrerequisiteStatus -> PrerequisiteStatus -> Bool # | |
prerequisitesMet :: TargetPrerequisites -> Bool Source #
Whether a real sweep of this target would pass both standing permissions.
renderPrerequisites :: TargetPrerequisites -> Text Source #
One target's line, which a preview prints above its counts. It closes on what no read settles: a preview deletes nothing, so it proves no authority to delete.
What a cycle could not read
data EvidenceGaps Source #
What one cycle could not read. A count taken with a gap open describes part of the store, so it is reported apart from the counts themselves rather than folded into them.
Constructors
| EvidenceGaps | |
Fields
| |
Instances
| Monoid EvidenceGaps Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods mempty :: EvidenceGaps # mappend :: EvidenceGaps -> EvidenceGaps -> EvidenceGaps # mconcat :: [EvidenceGaps] -> EvidenceGaps # | |
| Semigroup EvidenceGaps Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods (<>) :: EvidenceGaps -> EvidenceGaps -> EvidenceGaps # sconcat :: NonEmpty EvidenceGaps -> EvidenceGaps # stimes :: Integral b => b -> EvidenceGaps -> EvidenceGaps # | |
| Show EvidenceGaps Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome Methods showsPrec :: Int -> EvidenceGaps -> ShowS # show :: EvidenceGaps -> String # showList :: [EvidenceGaps] -> ShowS # | |
| Eq EvidenceGaps Source # | |
Defined in Ecluse.Core.Registry.Sweep.Outcome | |
unloadedGeneration :: EvidenceGaps Source #
The gap one mount deciding without an advisory generation leaves.
unreadManifest :: EvidenceGaps Source #
The gap one package the store served no metadata for leaves.
evidenceComplete :: EvidenceGaps -> Bool Source #
Whether a cycle read every fact its counts rest on.
renderEvidenceGaps :: EvidenceGaps -> Text Source #
What a cycle could not read, as its closing line reports it, naming only what it did miss.