feat: add method to KanidmQueryError

This commit is contained in:
dettlaff 2024-12-19 05:16:41 +04:00
parent 2e5a8c8b7b
commit 102f6f1e71
2 changed files with 15 additions and 4 deletions

View file

@ -6,13 +6,19 @@ class KanidmQueryError(Exception):
"""Error occurred during kanidm query""" """Error occurred during kanidm query"""
def __init__( def __init__(
self, error_text: Optional[Any] = None, endpoint: Optional[str] = None self,
error_text: Optional[Any] = None,
endpoint: Optional[str] = None,
method: Optional[str] = None,
) -> None: ) -> None:
self.error_text = str(error_text) self.error_text = str(error_text)
self.endpoint = endpoint self.endpoint = endpoint
self.method = method
def get_error_message(self) -> str: def get_error_message(self) -> str:
message = "An error occurred during the Kanidm query." message = "An error occurred during the Kanidm query."
if self.method:
message += f" Method: {self.method}"
if self.endpoint: if self.endpoint:
message += f" Endpoint: {self.endpoint}" message += f" Endpoint: {self.endpoint}"
if self.error_text: if self.error_text:

View file

@ -150,6 +150,7 @@ class KanidmAdminToken:
raise KanidmQueryError( raise KanidmQueryError(
error_text=f"Kanidm is not responding to requests. Error: {str(error)}", error_text=f"Kanidm is not responding to requests. Error: {str(error)}",
endpoint=endpoint, endpoint=endpoint,
method="GET",
) )
except Exception as error: except Exception as error:
@ -267,6 +268,7 @@ class KanidmUserRepository(AbstractUserRepository):
raise KanidmQueryError( raise KanidmQueryError(
error_text=f"No JSON found in Kanidm response. Error: {str(error)}", error_text=f"No JSON found in Kanidm response. Error: {str(error)}",
endpoint=full_endpoint, endpoint=full_endpoint,
method=method,
) )
except ( except (
requests.exceptions.Timeout, requests.exceptions.Timeout,
@ -276,11 +278,14 @@ class KanidmUserRepository(AbstractUserRepository):
raise KanidmQueryError( raise KanidmQueryError(
error_text=f"Kanidm is not responding to requests. Error: {str(error)}", error_text=f"Kanidm is not responding to requests. Error: {str(error)}",
endpoint=endpoint, endpoint=endpoint,
method=method,
) )
except Exception as error: except Exception as error:
logger.error(f"Kanidm query error: {str(error)}") logger.error(f"Kanidm query error: {str(error)}")
raise KanidmQueryError(error_text=error, endpoint=full_endpoint) raise KanidmQueryError(
error_text=error, endpoint=full_endpoint, method=method
)
if response.status_code != 200: if response.status_code != 200:
if isinstance(response_data, dict): if isinstance(response_data, dict):
@ -293,13 +298,13 @@ class KanidmUserRepository(AbstractUserRepository):
raise UserNotFound # does it work only for user? raise UserNotFound # does it work only for user?
elif response_data == "accessdenied": elif response_data == "accessdenied":
raise KanidmQueryError( raise KanidmQueryError(
error_text="Kanidm access issue", endpoint=full_endpoint error_text="Kanidm access issue", endpoint=full_endpoint, method=method
) )
elif response_data == "notauthenticated": elif response_data == "notauthenticated":
raise FailedToGetValidKanidmToken raise FailedToGetValidKanidmToken
logger.error(f"Kanidm query error: {response.text}") logger.error(f"Kanidm query error: {response.text}")
raise KanidmQueryError(error_text=response.text, endpoint=full_endpoint) raise KanidmQueryError(error_text=response.text, endpoint=full_endpoint, method=method)
return response_data return response_data