Skip to content

exceptions

drunc.session_manager.exceptions

Exceptions for the drunc session manager.

Classes

ChangeMeException(message='An error occurred in Drunc.', grpc_error_code=None, details=None, reason=None, domain=None, **detail_kwargs)

Bases: DruncCommandException

TODO: Change this exception to something more useful.

Source code in drunc/exceptions.py
def __init__(
    self,
    message: str | None = "An error occurred in Drunc.",
    grpc_error_code: int | None = None,
    details: str | None = None,
    reason: str | None = None,
    domain: str | None = None,
    **detail_kwargs: object,
) -> None:
    super().__init__(message)

    self.message: str = (
        message if message is not None else "An error occurred in Drunc."
    )

    self.grpc_error_code: int = (
        grpc_error_code
        if grpc_error_code is not None
        else int(getattr(self.__class__, "grpc_error_code", code_pb2.INTERNAL))
    )

    self.reason: str = (
        reason
        if reason is not None
        else str(getattr(self.__class__, "reason", self.__class__.__name__))
    )

    self.domain: str = (
        domain
        if domain is not None
        else str(getattr(self.__class__, "domain", "drunc"))
    )

    self.details: str | None = details
    self.detail_kwargs: dict[str, object] = detail_kwargs

    error_metadata: dict[str, str] = {"message": self.message}
    for key, value in self.detail_kwargs.items():
        error_metadata[key] = str(value)

    self.base_error_info = error_details_pb2.ErrorInfo(
        reason=self.reason, domain=self.domain, metadata=error_metadata
    )