diff --git a/src/spaceone/core/connector/space_connector.py b/src/spaceone/core/connector/space_connector.py index 7555f47..15c141a 100644 --- a/src/spaceone/core/connector/space_connector.py +++ b/src/spaceone/core/connector/space_connector.py @@ -44,6 +44,7 @@ def client(self) -> GRPCClient: return self._client def dispatch(self, method: str, params: dict = None, **kwargs) -> Any: + _LOGGER.debug(f"space_connector.dispatch : method: {method}") return self._call_api(method, params, **kwargs) def _call_api( @@ -55,15 +56,23 @@ def _call_api( x_workspace_id: str = None, ) -> Any: resource, verb = self._parse_method(method) + _LOGGER.debug(f"space_connector.dispatch :: resource: {resource}, verb: {verb}") + self._check_method(resource, verb) params = params or {} + _LOGGER.debug(f"space_connector.dispatch :: params: {params}") metadata = self._get_connection_metadata(token, x_domain_id, x_workspace_id) + _LOGGER.debug(f"space_connector.dispatch :: metadata: {metadata}") response_or_iterator = getattr(getattr(self._client, resource), verb)( params, metadata=metadata ) + _LOGGER.debug( + f"space_connector.dispatch :: response_or_iterator: {response_or_iterator}" + ) + if self._return_type == "dict": if isinstance(response_or_iterator, types.GeneratorType): return self._generate_response(response_or_iterator) diff --git a/src/spaceone/core/pygrpc/client.py b/src/spaceone/core/pygrpc/client.py index 898503d..d7374e7 100644 --- a/src/spaceone/core/pygrpc/client.py +++ b/src/spaceone/core/pygrpc/client.py @@ -2,7 +2,7 @@ import types import grpc from google.protobuf.json_format import ParseDict -from google.protobuf.message_factory import MessageFactory #, GetMessageClass +from google.protobuf.message_factory import MessageFactory # , GetMessageClass from google.protobuf.descriptor_pool import DescriptorPool from google.protobuf.descriptor import ServiceDescriptor, MethodDescriptor from grpc_reflection.v1alpha.proto_reflection_descriptor_database import ( @@ -109,16 +109,24 @@ def _retry_call( ): retries = 0 + _LOGGER.debug( + f"client._retry_call.init :: client_call_details: {client_call_details}" + ) + while True: try: + _LOGGER.debug(f"client._retry_call.start!!!") response_or_iterator = continuation( client_call_details, request_or_iterator ) + _LOGGER.debug(f"client._retry_call.response_or_iterator Success!!!") if is_stream: response_or_iterator = self._generate_response(response_or_iterator) else: + _LOGGER.debug(f"client._retry_call.start _check_error!!!") self._check_error(response_or_iterator) + _LOGGER.debug(f"client._retry_call.finished _check_error!!!") return response_or_iterator @@ -207,13 +215,17 @@ def _bind_grpc_method( request_desc = self._desc_pool.FindMessageTypeByName( method_desc.input_type.full_name ) - request_message_desc = MessageFactory(self._desc_pool).GetPrototype(request_desc) + request_message_desc = MessageFactory(self._desc_pool).GetPrototype( + request_desc + ) # request_message_desc = GetMessageClass(request_desc) response_desc = self._desc_pool.FindMessageTypeByName( method_desc.output_type.full_name ) - response_message_desc = MessageFactory(self._desc_pool).GetPrototype(response_desc) + response_message_desc = MessageFactory(self._desc_pool).GetPrototype( + response_desc + ) # response_message_desc = GetMessageClass(response_desc) if method_desc.client_streaming and method_desc.server_streaming: @@ -286,7 +298,9 @@ def _init_grpc_reflection(self): request_desc = self._desc_pool.FindMessageTypeByName( method_desc.input_type.full_name ) - self._request_map[method_key] = MessageFactory(self._desc_pool).GetPrototype(request_desc) + self._request_map[method_key] = MessageFactory( + self._desc_pool + ).GetPrototype(request_desc) # self._request_map[method_key] = GetMessageClass(request_desc) if service_desc.name not in self._api_resources: @@ -324,6 +338,11 @@ def client(endpoint=None, ssl_enabled=False, max_message_length=None, **client_o if endpoint is None: raise Exception("Client's endpoint is undefined.") + _LOGGER.debug(f"pygrpc.client :: endpoint: {endpoint}") + _LOGGER.debug( + f"pygrpc.client :: _GRPC_CHANNEL: {_GRPC_CHANNEL} / is in? {endpoint in _GRPC_CHANNEL}" + ) + if endpoint not in _GRPC_CHANNEL: options = []