Source code for ska_oso_pdm.entity_status_history

"""
a simple Python representation of the SBD, SBI and EB status history
"""
from typing import Optional

from pydantic import Field

from ska_oso_pdm._shared import ExecutionBlockID, SBDefinitionID, SBInstanceID
from ska_oso_pdm._shared.atoms import TerseStrEnum
from ska_oso_pdm._shared.metadata import Metadata
from ska_oso_pdm._shared.pdm_object import PdmObject


[docs] class SBDStatus(TerseStrEnum): DRAFT = "draft" SUBMITTED = "submitted" READY = "ready" INPROGRESS = "in_progress" OBSERVED = "observed" SUSPENDED = "suspended" FAILED_PROCESSING = "failed_processing" COMPLETE = "complete"
[docs] class SBIStatus(TerseStrEnum): CREATED = "created" EXECUTING = "executing" OBSERVED = "observed" FAILED = "failed"
[docs] class OSOEBStatus(TerseStrEnum): CREATED = "created" FULLY_OBSERVED = "fully_observed" FAILED = "failed"
[docs] class EntityStatus(PdmObject): metadata: Metadata = Field(default_factory=Metadata)
[docs] class SBDStatusHistory(EntityStatus): sbd_ref: SBDefinitionID current_status: SBDStatus = SBDStatus.DRAFT previous_status: Optional[SBDStatus] = SBDStatus.DRAFT
[docs] class SBIStatusHistory(EntityStatus): sbi_ref: SBInstanceID current_status: SBIStatus = SBIStatus.CREATED previous_status: Optional[SBIStatus] = SBIStatus.CREATED
[docs] class OSOEBStatusHistory(EntityStatus): eb_ref: ExecutionBlockID current_status: OSOEBStatus = OSOEBStatus.CREATED previous_status: Optional[OSOEBStatus] = OSOEBStatus.CREATED