|
from typing import Optional, Any, Mapping |
|
|
|
from ..base import ResponsibleException |
|
from ..exception import SlaveErrorCode |
|
|
|
|
|
class ConnectionRefuse(ResponsibleException): |
|
""" |
|
Overview: |
|
Exception represents the refuse to connection to slave from master, can be used in method `_before_connection`. |
|
Example: |
|
- Without data |
|
|
|
>>> raise ConnectionRefuse |
|
|
|
- With refuse data |
|
|
|
>>> raise ConnectionRefuse({'data': 233}) |
|
""" |
|
|
|
def __init__(self, data: Optional[Mapping[str, Any]] = None): |
|
""" |
|
Overview: |
|
Constructor of ConnectionRefuse |
|
Arguments: |
|
- data (:obj:`Optional[Mapping[str, Any]]`): Key-value-formed refuse data |
|
""" |
|
ResponsibleException.__init__( |
|
self, |
|
SlaveErrorCode.SLAVE_CONNECTION_REFUSED, |
|
message='Connection refused!', |
|
data=data or {}, |
|
status_code=403, |
|
) |
|
|
|
|
|
class DisconnectionRefuse(ResponsibleException): |
|
""" |
|
Overview: |
|
Exception represents the refuse to disconnection to slave from master, |
|
can be used in method `_before_disconnection`. |
|
Example: |
|
- Without data |
|
|
|
>>> raise DisconnectionRefuse |
|
|
|
- With refuse data |
|
|
|
>>> raise DisconnectionRefuse({'data': 233}) |
|
""" |
|
|
|
def __init__(self, data: Optional[Mapping[str, Any]] = None): |
|
""" |
|
Overview: |
|
Constructor of DisconnectionRefuse |
|
Arguments: |
|
- data (:obj:`Optional[Mapping[str, Any]]`): Key-value-formed refuse data |
|
""" |
|
ResponsibleException.__init__( |
|
self, |
|
SlaveErrorCode.SLAVE_DISCONNECTION_REFUSED, |
|
message='Disconnection refused!', |
|
data=data or {}, |
|
status_code=403, |
|
) |
|
|
|
|
|
class TaskRefuse(ResponsibleException): |
|
""" |
|
Overview: |
|
Exception represents the refuse to tasks, can be used in method `_before_task`. |
|
Example: |
|
- Without data |
|
|
|
>>> raise TaskRefuse |
|
|
|
- With refuse data |
|
|
|
>>> raise TaskRefuse({'data': 233}) |
|
""" |
|
|
|
def __init__(self, data: Optional[Mapping[str, Any]] = None): |
|
""" |
|
Overview: |
|
Constructor of TaskRefuse |
|
Arguments: |
|
- data (:obj:`Optional[Mapping[str, Any]]`): Key-value-formed refuse data |
|
""" |
|
ResponsibleException.__init__( |
|
self, |
|
SlaveErrorCode.TASK_REFUSED, |
|
message='Task refused!', |
|
data=data or {}, |
|
status_code=403, |
|
) |
|
|
|
|
|
class TaskFail(Exception): |
|
""" |
|
Overview: |
|
Exception represents the failure of tasks, can be used in method `_process_task`. |
|
Example: |
|
- Without data |
|
|
|
>>> raise TaskFail |
|
|
|
- With failure data |
|
|
|
>>> raise TaskFail({'data': 233}) |
|
|
|
- With both data and message |
|
|
|
>>> raise TaskFail({'data': 233}, 'this is message') |
|
""" |
|
|
|
def __init__(self, result: Optional[Mapping[str, Any]] = None, message: Optional[str] = None): |
|
""" |
|
Overview: |
|
Constructor of TaskFail |
|
Arguments: |
|
- result (:obj:`Optional[Mapping[str, Any]]`): Result of task failure |
|
- message (:obj:`Optional[str]`): Message of task failure |
|
""" |
|
if message: |
|
Exception.__init__(self, 'Task process failed - {message}.'.format(message=message)) |
|
else: |
|
Exception.__init__(self, 'Task process failed.') |
|
self.__result = result or {} |
|
|
|
@property |
|
def result(self) -> Mapping[str, Any]: |
|
""" |
|
Overview: |
|
Get the result of task failure. |
|
Returns: |
|
Result of task failure. |
|
""" |
|
return self.__result |
|
|