diff --git a/src/common/rpc_method_wrapper/Decorator.py b/src/common/rpc_method_wrapper/Decorator.py index 212481b7398439d7dbaa5bb76df6901544562ab5..31dc4b82bdaa8762b1dee5af247b3f8b7b9af2af 100644 --- a/src/common/rpc_method_wrapper/Decorator.py +++ b/src/common/rpc_method_wrapper/Decorator.py @@ -17,6 +17,7 @@ from enum import Enum from typing import Dict, List from prometheus_client import Counter, Histogram from prometheus_client.metrics import MetricWrapperBase +from common.tools.grpc.Tools import grpc_message_to_json_string from .ServiceExceptions import ServiceException class RequestConditionEnum(Enum): @@ -62,9 +63,9 @@ def safe_and_metered_rpc_method(metrics : Dict[str, MetricWrapperBase], logger : def inner_wrapper(self, request, grpc_context : grpc.ServicerContext): COUNTER_STARTED.inc() try: - logger.debug('{:s} request: {:s}'.format(function_name, str(request))) + logger.debug('{:s} request: {:s}'.format(function_name, grpc_message_to_json_string(request))) reply = func(self, request, grpc_context) - logger.debug('{:s} reply: {:s}'.format(function_name, str(reply))) + logger.debug('{:s} reply: {:s}'.format(function_name, grpc_message_to_json_string(reply))) COUNTER_COMPLETED.inc() return reply except ServiceException as e: # pragma: no cover (ServiceException not thrown) diff --git a/src/common/tools/client/RetryDecorator.py b/src/common/tools/client/RetryDecorator.py index d7bcdb42da9d156dd9f80804e33debcb5c278d83..9a1c0d69fc5d86b8a64a5886884c31e73af27777 100644 --- a/src/common/tools/client/RetryDecorator.py +++ b/src/common/tools/client/RetryDecorator.py @@ -57,7 +57,7 @@ def delay_linear(initial=0, increment=0, maximum=None): def delay_exponential(initial=1, increment=1, maximum=None): def compute(num_try): - delay = initial * pow((num_try - 1), increment) + delay = initial * pow(increment, (num_try - 1)) if maximum is not None: delay = max(delay, maximum) return delay return compute diff --git a/src/common/tools/grpc/Tools.py b/src/common/tools/grpc/Tools.py index 7c6a74348e4e0fa51ac68a40af511f4753c628ae..f0c72a36f18acf2c278f7204352055861b79216f 100644 --- a/src/common/tools/grpc/Tools.py +++ b/src/common/tools/grpc/Tools.py @@ -16,8 +16,9 @@ import json from google.protobuf.json_format import MessageToDict def grpc_message_to_json( - message, including_default_value_fields=True, preserving_proto_field_name=True, use_integers_for_enums=False): - + message, including_default_value_fields=True, preserving_proto_field_name=True, use_integers_for_enums=False + ): + if not hasattr(message, 'DESCRIPTOR'): return json.dumps(str(message), sort_keys=True) # not a gRPC message return MessageToDict( message, including_default_value_fields=including_default_value_fields, preserving_proto_field_name=preserving_proto_field_name, use_integers_for_enums=use_integers_for_enums)