From f71daf64a78d884d234a39152bcc97e0cffd39bb Mon Sep 17 00:00:00 2001 From: Raphael Luciano Date: Thu, 20 Jul 2023 12:40:02 -0400 Subject: [PATCH 1/5] reworking grpc and tui logging --- src/ansys/fluent/core/services/datamodel_tui.py | 3 ++- src/ansys/fluent/core/services/interceptors.py | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ansys/fluent/core/services/datamodel_tui.py b/src/ansys/fluent/core/services/datamodel_tui.py index 06e0ea943d20..b34e4cd3b28f 100644 --- a/src/ansys/fluent/core/services/datamodel_tui.py +++ b/src/ansys/fluent/core/services/datamodel_tui.py @@ -192,7 +192,8 @@ def execute(self, *args, **kwargs) -> Any: if self._path.startswith("/query/"): return self._execute_query(request) else: - logger.debug(f"TUI Command: {request}") + request_str = " ".join(str(request).split()) + logger.debug(f"TUI Command: {request_str}") return self._execute_command(request) def get_doc_string(self, include_unavailable: bool = False) -> str: diff --git a/src/ansys/fluent/core/services/interceptors.py b/src/ansys/fluent/core/services/interceptors.py index 7f51b0ce6455..11aeba95cb6c 100644 --- a/src/ansys/fluent/core/services/interceptors.py +++ b/src/ansys/fluent/core/services/interceptors.py @@ -1,6 +1,7 @@ """Interceptor classes to use with gRPC services.""" import logging +import sys from typing import Any from google.protobuf.json_format import MessageToDict @@ -9,6 +10,7 @@ from ansys.fluent.core.services.batch_ops import BatchOps network_logger = logging.getLogger("pyfluent.networking") +log_bytes_limit = 1000 class TracingInterceptor(grpc.UnaryUnaryClientInterceptor): @@ -29,9 +31,15 @@ def _intercept_call( ) response = continuation(client_call_details, request) if not response.exception(): - network_logger.debug( - f"GRPC_TRACE: response = {MessageToDict(response.result())}" - ) + response_str = str(MessageToDict(response.result())) + response_bytes = sys.getsizeof(response_str) + if response_bytes < log_bytes_limit: + network_logger.debug(f"GRPC_TRACE: response = {response_str}") + else: + network_logger.debug( + f"GRPC_TRACE: response hidden, {response_bytes} bytes > " + f"{log_bytes_limit} bytes limit." + ) return response def intercept_unary_unary( From 8b014187bd1d07ecd3142b91a39c3058186f51ec Mon Sep 17 00:00:00 2001 From: Raphael Luciano Date: Thu, 20 Jul 2023 14:09:05 -0400 Subject: [PATCH 2/5] checking ByteSize first to avoid working with large strings, adding optional env var for log bytes limit --- src/ansys/fluent/core/services/interceptors.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/ansys/fluent/core/services/interceptors.py b/src/ansys/fluent/core/services/interceptors.py index 11aeba95cb6c..1c21a1967232 100644 --- a/src/ansys/fluent/core/services/interceptors.py +++ b/src/ansys/fluent/core/services/interceptors.py @@ -1,7 +1,7 @@ """Interceptor classes to use with gRPC services.""" import logging -import sys +import os from typing import Any from google.protobuf.json_format import MessageToDict @@ -10,7 +10,7 @@ from ansys.fluent.core.services.batch_ops import BatchOps network_logger = logging.getLogger("pyfluent.networking") -log_bytes_limit = 1000 +log_bytes_limit = int(os.getenv("PYFLUENT_GRPC_LOG_BYTES_LIMIT", 1000)) class TracingInterceptor(grpc.UnaryUnaryClientInterceptor): @@ -31,14 +31,15 @@ def _intercept_call( ) response = continuation(client_call_details, request) if not response.exception(): - response_str = str(MessageToDict(response.result())) - response_bytes = sys.getsizeof(response_str) - if response_bytes < log_bytes_limit: - network_logger.debug(f"GRPC_TRACE: response = {response_str}") + response_bytes = response.result().ByteSize() + if log_bytes_limit and response_bytes < log_bytes_limit: + network_logger.debug( + f"GRPC_TRACE: response = {MessageToDict(response.result())}" + ) else: network_logger.debug( f"GRPC_TRACE: response hidden, {response_bytes} bytes > " - f"{log_bytes_limit} bytes limit." + f"{log_bytes_limit} bytes limit. To see the response, set PYFLUENT_GRPC_LOG_BYTES_LIMIT to 0." ) return response From ff9be90e0a99230b21cd558ad65b0fe643520850 Mon Sep 17 00:00:00 2001 From: Raphael Luciano Date: Thu, 20 Jul 2023 14:24:25 -0400 Subject: [PATCH 3/5] logic fix, and removing repeated docker container logging calls --- src/ansys/fluent/core/launcher/fluent_container.py | 2 -- src/ansys/fluent/core/services/interceptors.py | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ansys/fluent/core/launcher/fluent_container.py b/src/ansys/fluent/core/launcher/fluent_container.py index 95a7c9dbcaa2..e5e424040d9e 100644 --- a/src/ansys/fluent/core/launcher/fluent_container.py +++ b/src/ansys/fluent/core/launcher/fluent_container.py @@ -267,8 +267,6 @@ def configure_container_dict( if k not in container_dict: container_dict[k] = v - logger.debug(f"container_dict after processing: {container_dict}") - host_server_info_file = Path(host_mount_path) / container_server_info_file.name return ( diff --git a/src/ansys/fluent/core/services/interceptors.py b/src/ansys/fluent/core/services/interceptors.py index 1c21a1967232..0087e44fcaed 100644 --- a/src/ansys/fluent/core/services/interceptors.py +++ b/src/ansys/fluent/core/services/interceptors.py @@ -10,7 +10,7 @@ from ansys.fluent.core.services.batch_ops import BatchOps network_logger = logging.getLogger("pyfluent.networking") -log_bytes_limit = int(os.getenv("PYFLUENT_GRPC_LOG_BYTES_LIMIT", 1000)) +log_bytes_limit = int(int(os.getenv("PYFLUENT_GRPC_LOG_BYTES_LIMIT", 1000))) class TracingInterceptor(grpc.UnaryUnaryClientInterceptor): @@ -32,7 +32,7 @@ def _intercept_call( response = continuation(client_call_details, request) if not response.exception(): response_bytes = response.result().ByteSize() - if log_bytes_limit and response_bytes < log_bytes_limit: + if not log_bytes_limit or response_bytes < log_bytes_limit: network_logger.debug( f"GRPC_TRACE: response = {MessageToDict(response.result())}" ) From b46e097ca6761971d46fff92dc39d129de0f1450 Mon Sep 17 00:00:00 2001 From: Raphael Luciano Date: Thu, 20 Jul 2023 14:27:56 -0400 Subject: [PATCH 4/5] removing duplicated int() --- src/ansys/fluent/core/services/interceptors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/fluent/core/services/interceptors.py b/src/ansys/fluent/core/services/interceptors.py index 0087e44fcaed..3227346f9e1f 100644 --- a/src/ansys/fluent/core/services/interceptors.py +++ b/src/ansys/fluent/core/services/interceptors.py @@ -10,7 +10,7 @@ from ansys.fluent.core.services.batch_ops import BatchOps network_logger = logging.getLogger("pyfluent.networking") -log_bytes_limit = int(int(os.getenv("PYFLUENT_GRPC_LOG_BYTES_LIMIT", 1000))) +log_bytes_limit = int(os.getenv("PYFLUENT_GRPC_LOG_BYTES_LIMIT", 1000)) class TracingInterceptor(grpc.UnaryUnaryClientInterceptor): From e4c7f2b6b46209fc95bdc7cbb2d3be1cfd7f8f3a Mon Sep 17 00:00:00 2001 From: Raphael Luciano Date: Thu, 20 Jul 2023 17:01:39 -0400 Subject: [PATCH 5/5] fix for #1798, and potentially for failing tests in #1827 --- src/ansys/fluent/core/launcher/fluent_container.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ansys/fluent/core/launcher/fluent_container.py b/src/ansys/fluent/core/launcher/fluent_container.py index e5e424040d9e..63e4ea66ecd8 100644 --- a/src/ansys/fluent/core/launcher/fluent_container.py +++ b/src/ansys/fluent/core/launcher/fluent_container.py @@ -260,9 +260,6 @@ def configure_container_dict( auto_remove=True, ) - if fluent_image.split(":")[1] == "v24.1.0": - container_dict_default.update(tty=True) - for k, v in container_dict_default.items(): if k not in container_dict: container_dict[k] = v