cadrumo.application.config_reset_repository module

Atomic per-file persistence for reset-operation journals.

Journal files live under <storage-root>/reset-operations, outside bucket directories. Atomicity applies to an individual journal-file write or replace, not to an entire reset operation. The shared read/write substrate is the JournalRepositoryBase; this module adds the reset-specific creation-exclusivity and deletion-ownership surface on top.

exception ConfigResetJournalError(message=None, *, context=None, translated_message=None)[source]

Bases: CadrumoError

Base failure for reset-journal persistence and validation.

Parameters:
  • message (str | None)

  • context (Mapping[str, object] | None)

  • translated_message (str | None)

Return type:

None

code
exception ConfigResetJournalAlreadyExistsError(message=None, *, context=None, translated_message=None)[source]

Bases: ConfigResetJournalError

Raised when create targets an operation id already on disk.

Parameters:
  • message (str | None)

  • context (Mapping[str, object] | None)

  • translated_message (str | None)

Return type:

None

code
exception ConfigResetJournalNotFoundError(message=None, *, context=None, translated_message=None)[source]

Bases: ConfigResetJournalError

Raised when a requested reset journal does not exist.

Parameters:
  • message (str | None)

  • context (Mapping[str, object] | None)

  • translated_message (str | None)

Return type:

None

code
exception ConfigResetJournalCorruptError(message=None, *, context=None, translated_message=None)[source]

Bases: ConfigResetJournalError

Raised for unreadable, malformed, schema-invalid, or mismatched journals.

Parameters:
  • message (str | None)

  • context (Mapping[str, object] | None)

  • translated_message (str | None)

Return type:

None

code
exception ConfigResetJournalOwnershipError(message=None, *, context=None, translated_message=None)[source]

Bases: ConfigResetJournalError

Raised when a journal lacks the required target deletion evidence.

Parameters:
  • message (str | None)

  • context (Mapping[str, object] | None)

  • translated_message (str | None)

Return type:

None

code
exception ConfigResetJournalIncompleteError(message=None, *, context=None, translated_message=None)[source]

Bases: ConfigResetJournalError

Raised when a new operation would overlap an incomplete reset.

Parameters:
  • message (str | None)

  • context (Mapping[str, object] | None)

  • translated_message (str | None)

Return type:

None

code
class ConfigResetJournalRepository(*, settings=None, storage_root=None)[source]

Bases: JournalRepositoryBase[ConfigResetOperation]

Persist credential-free journals as atomic individual files.

The repository provides no reset orchestration, journal-deletion API, or cryptographic authenticity guarantee. The atomic read/write substrate is inherited from JournalRepositoryBase; this class adds creation-exclusivity, incompleteness gating, per-operation execution locking, and deletion-ownership verification.

Parameters:
  • settings (Settings | None)

  • storage_root (Path | None)

create(operation)[source]

Create a journal while refusing an existing operation identifier.

Return type:

None

Parameters:

operation (ConfigResetOperation)

create_exclusive(operation)[source]

Create a journal only when no incomplete reset operation exists.

Return type:

None

Parameters:

operation (ConfigResetOperation)

refuse_if_incomplete()[source]

Refuse before preflight when another reset journal is incomplete.

Return type:

None

incomplete()[source]

Return journals whose status is not complete.

Return type:

tuple[ConfigResetOperation, ...]

latest()[source]

Return the last journal in repository ordering, or None.

Return type:

ConfigResetOperation | None

operation_lock(operation_id)[source]

Serialize start or resume execution for one operation identifier.

Return type:

Generator[None]

Parameters:

operation_id (str)