From eaa115802355052c046b99547baeb627aa76c3b0 Mon Sep 17 00:00:00 2001 From: Johannes Nussbaum <39048939+jnussbaum@users.noreply.github.com> Date: Thu, 18 Jan 2024 11:21:53 +0100 Subject: [PATCH] chore: tidy up connection class (#747) --- src/dsp_tools/utils/connection_live.py | 72 +++++++++++++------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/dsp_tools/utils/connection_live.py b/src/dsp_tools/utils/connection_live.py index 8e3924916..ad24c8775 100644 --- a/src/dsp_tools/utils/connection_live.py +++ b/src/dsp_tools/utils/connection_live.py @@ -88,31 +88,6 @@ def get_token(self) -> str: raise BaseError("No token available.") return self.token - def _log_request( - self, - method: str, - url: str, - data: dict[str, Any] | None, - params: Optional[dict[str, Any]], - timeout: int, - headers: dict[str, str] | None = None, - uploaded_file: str | None = None, - ) -> None: - headers = headers or {} - headers.update({k: str(v) for k, v in self.session.headers.items()}) - headers = self._anonymize(headers) - data = self._anonymize(data) - dumpobj = { - "HTTP request": method, - "url": url, - "headers": headers, - "params": params, - "timetout": timeout, - "payload": data, - "uploaded file": uploaded_file, - } - logger.debug(f"REQUEST: {json.dumps(dumpobj, cls=SetEncoder)}") - def post( self, route: str, @@ -297,17 +272,6 @@ def delete( ) return cast(dict[str, Any], response.json()) - def _should_retry(self, response: Response) -> bool: - in_500_range = HTTP_SERVER_ERROR_LOWER <= response.status_code <= HTTP_SERVER_ERROR_UPPER - try_again_later = "try again later" in response.text - return try_again_later or in_500_range - - def _log_and_sleep(self, reason: str, retry_counter: int) -> None: - msg = f"{reason}: Try reconnecting to DSP server, next attempt in {2 ** retry_counter} seconds..." - print(f"{datetime.now()}: {msg}") - logger.exception(f"{msg} ({retry_counter=:})") - time.sleep(2**retry_counter) - def _try_network_action(self, action: Callable[[], Response]) -> Response: """ Try 7 times to execute a HTTP request. @@ -355,6 +319,12 @@ def _try_network_action(self, action: Callable[[], Response]) -> Response: # after 7 vain attempts to create a response, try it a last time and let it escalate return action() + def _log_and_sleep(self, reason: str, retry_counter: int) -> None: + msg = f"{reason}: Try reconnecting to DSP server, next attempt in {2 ** retry_counter} seconds..." + print(f"{datetime.now()}: {msg}") + logger.exception(f"{msg} ({retry_counter=:})") + time.sleep(2**retry_counter) + def _log_response(self, response: Response) -> None: try: content = self._anonymize(response.json()) @@ -386,3 +356,33 @@ def _anonymize(self, data: dict[str, Any] | None) -> dict[str, Any] | None: tok = data["password"] data["password"] = f"{tok[:5]}[+{len(tok) - 5}]" return data + + def _should_retry(self, response: Response) -> bool: + in_500_range = HTTP_SERVER_ERROR_LOWER <= response.status_code <= HTTP_SERVER_ERROR_UPPER + try_again_later = "try again later" in response.text + return try_again_later or in_500_range + + def _log_request( + self, + method: str, + url: str, + data: dict[str, Any] | None, + params: Optional[dict[str, Any]], + timeout: int, + headers: dict[str, str] | None = None, + uploaded_file: str | None = None, + ) -> None: + headers = headers or {} + headers.update({k: str(v) for k, v in self.session.headers.items()}) + headers = self._anonymize(headers) + data = self._anonymize(data) + dumpobj = { + "HTTP request": method, + "url": url, + "headers": headers, + "params": params, + "timetout": timeout, + "payload": data, + "uploaded file": uploaded_file, + } + logger.debug(f"REQUEST: {json.dumps(dumpobj, cls=SetEncoder)}")