from datetime import timedelta class MesaCIException(Exception): pass class MesaCIRetriableException(MesaCIException): pass class MesaCITimeoutError(MesaCIRetriableException): def __init__(self, *args, timeout_duration: timedelta) -> None: super().__init__(*args) self.timeout_duration = timeout_duration class MesaCIRetryError(MesaCIRetriableException): def __init__(self, *args, retry_count: int, last_job: None) -> None: super().__init__(*args) self.retry_count = retry_count self.last_job = last_job class MesaCIFatalException(MesaCIException): """Exception raised when the Mesa CI script encounters a fatal error that prevents the script from continuing.""" def __init__(self, *args) -> None: super().__init__(*args) class MesaCIParseException(MesaCIRetriableException): pass class MesaCIKnownIssueException(MesaCIRetriableException): """Exception raised when the Mesa CI script finds something in the logs that is known to cause the LAVA job to eventually fail""" pass