1from datetime import timedelta
2
3
4class MesaCIException(Exception):
5    pass
6
7
8class MesaCITimeoutError(MesaCIException):
9    def __init__(self, *args, timeout_duration: timedelta) -> None:
10        super().__init__(*args)
11        self.timeout_duration = timeout_duration
12
13
14class MesaCIRetryError(MesaCIException):
15    def __init__(self, *args, retry_count: int) -> None:
16        super().__init__(*args)
17        self.retry_count = retry_count
18
19
20class MesaCIParseException(MesaCIException):
21    pass
22
23
24class MesaCIKnownIssueException(MesaCIException):
25    """Exception raised when the Mesa CI script finds something in the logs that
26    is known to cause the LAVA job to eventually fail"""
27
28    pass
29