Skip to content

k8s_exceptions

drunc.k8s_exceptions

Classes

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

Bases: DruncException

Exception thrown when there is a Kubernetes error.

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
    )

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

Bases: DruncException

Exception thrown for namespace-related errors.

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
    )

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

Bases: DruncException

Exception thrown for node-related errors such as unavailable or invalid nodes.

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
    )

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

Bases: DruncException

Exception thrown for pod-related errors.

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
    )