From ebb0b3ab03a619a515f69e8cb86f9e1ac14e8415 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 24 Nov 2022 05:08:02 +0000 Subject: [PATCH 1/9] [CI/CD] release version v1.10.4-rc1 --- src/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VERSION b/src/VERSION index 2d5dc35..e047873 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -v1.10.3.3 +v1.10.4-rc1 From 1709ea704d3ce66ffaaa35dcc217184304663541 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 28 Nov 2022 02:05:59 +0000 Subject: [PATCH 2/9] [CI/CD] release version v1.10.4 --- src/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VERSION b/src/VERSION index e047873..66acda7 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -v1.10.4-rc1 +v1.10.4 From e5904edd6e79b2a420c4d4715b69491765915632 Mon Sep 17 00:00:00 2001 From: Minho Kim Date: Mon, 28 Nov 2022 17:54:35 +0900 Subject: [PATCH 3/9] feat: add resource and verb parameter for parse_request (#11) Signed-off-by: Minho Kim (cherry picked from commit f3a22b03f9f5a33a9ffd772a955d67bcbe6e4277) --- src/spaceone/core/fastapi/api.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/spaceone/core/fastapi/api.py b/src/spaceone/core/fastapi/api.py index 361229d..0ab5cd5 100644 --- a/src/spaceone/core/fastapi/api.py +++ b/src/spaceone/core/fastapi/api.py @@ -69,16 +69,16 @@ class BaseAPI(object): def name(self): return self.__class__.__name__ - async def parse_request(self, request: Request, token=None): + async def parse_request(self, request: Request, token=None, resource=None, verb=None): try: metadata = { 'url': request.url.path, - 'service': self.service + 'service': self.service, + 'resource': resource, + 'verb': verb, + 'token': token } - if token: - metadata['token'] = token - return await request.json(), metadata except Exception as e: _LOGGER.debug(f'JSON Parsing Error: {e}', exc_info=True) From 36a61ea3b6ad3c9a9df52fb6dc38fbf3bea0de4d Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 29 Nov 2022 09:33:02 +0000 Subject: [PATCH 4/9] [CI/CD] release version v1.10.4.1 --- src/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VERSION b/src/VERSION index 66acda7..1bc5ebf 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -v1.10.4 +v1.10.4.1 From 3e5fe59555ab792f4904d9d4eb1728963dbd6f7e Mon Sep 17 00:00:00 2001 From: Jongmin Kim Date: Thu, 1 Dec 2022 18:21:31 +0900 Subject: [PATCH 5/9] refactor: support object type in locator (cherry picked from commit 017261436ae446e11f4ed9fb0ff7eeca3a95f370) --- src/spaceone/core/locator.py | 49 ++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/src/spaceone/core/locator.py b/src/spaceone/core/locator.py index 3b9c69f..8becbac 100644 --- a/src/spaceone/core/locator.py +++ b/src/spaceone/core/locator.py @@ -47,48 +47,55 @@ def get_manager(self, name: [str, object], **kwargs): except Exception as e: raise ERROR_LOCATOR(name=name, reason=e, _meta={'type': 'manager'}) - def get_connector(self, name: str, **kwargs): + def get_info(self, name: [str, object], *args, **kwargs): package = config.get_package() - connector_conf = config.get_connector(name) - backend = connector_conf.get('backend') - try: - if backend: - connector_module, name = backend.rsplit('.', 1) - connector_module = __import__(connector_module, fromlist=[name]) + if isinstance(name, str): + info_module = _get_module(package, 'info') + return getattr(info_module, name)(*args, **kwargs) else: - connector_module = _get_module(package, 'connector') - - return getattr(connector_module, name)(transaction=self.transaction, config=connector_conf, **kwargs) + return name(*args, **kwargs) except ERROR_BASE as e: raise e except Exception as e: - raise ERROR_LOCATOR(name=name, reason=e, _meta={'type': 'connector'}) + raise ERROR_LOCATOR(name=name, reason=e, _meta={'type': 'info'}) - def get_info(self, name: str, *args, **kwargs): + def get_model(self, name: [str, object]): package = config.get_package() try: - info_module = _get_module(package, 'info') - return getattr(info_module, name)(*args, **kwargs) + if isinstance(name, str): + model_module = _get_module(package, 'model') + model = getattr(model_module, name) + model.init() + return model + else: + name.init() + return name except ERROR_BASE as e: raise e except Exception as e: - raise ERROR_LOCATOR(name=name, reason=e, _meta={'type': 'info'}) + raise ERROR_LOCATOR(name=f'{name} Model', reason=e, _meta={'type': 'model'}) - def get_model(self, name: str): + def get_connector(self, name: str, **kwargs): package = config.get_package() + connector_conf = config.get_connector(name) + backend = connector_conf.get('backend') + try: - model_module = _get_module(package, 'model') - model = getattr(model_module, name) - model.init() - return model + if backend: + connector_module, name = backend.rsplit('.', 1) + connector_module = __import__(connector_module, fromlist=[name]) + else: + connector_module = _get_module(package, 'connector') + + return getattr(connector_module, name)(transaction=self.transaction, config=connector_conf, **kwargs) except ERROR_BASE as e: raise e except Exception as e: - raise ERROR_LOCATOR(name=f'{name} Model', reason=e, _meta={'type': 'model'}) + raise ERROR_LOCATOR(name=name, reason=e, _meta={'type': 'connector'}) From 3f2fcdf05ebb240cab0559c4aba81bd935ab18eb Mon Sep 17 00:00:00 2001 From: Jongmin Kim Date: Thu, 1 Dec 2022 18:51:12 +0900 Subject: [PATCH 6/9] refactor: support object type in locator (cherry picked from commit b2c672ef3e32e82693412f163a457d9288d1a61a) --- src/spaceone/core/locator.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/spaceone/core/locator.py b/src/spaceone/core/locator.py index 8becbac..c61c009 100644 --- a/src/spaceone/core/locator.py +++ b/src/spaceone/core/locator.py @@ -80,19 +80,23 @@ def get_model(self, name: [str, object]): except Exception as e: raise ERROR_LOCATOR(name=f'{name} Model', reason=e, _meta={'type': 'model'}) - def get_connector(self, name: str, **kwargs): + def get_connector(self, name: [str, object], **kwargs): package = config.get_package() - connector_conf = config.get_connector(name) - backend = connector_conf.get('backend') try: - if backend: - connector_module, name = backend.rsplit('.', 1) - connector_module = __import__(connector_module, fromlist=[name]) - else: - connector_module = _get_module(package, 'connector') + if isinstance(name, str): + connector_conf = config.get_connector(name) + backend = connector_conf.get('backend') - return getattr(connector_module, name)(transaction=self.transaction, config=connector_conf, **kwargs) + if backend: + connector_module, name = backend.rsplit('.', 1) + connector_module = __import__(connector_module, fromlist=[name]) + else: + connector_module = _get_module(package, 'connector') + + return getattr(connector_module, name)(transaction=self.transaction, config=connector_conf, **kwargs) + else: + name(transitions=self.transaction, **kwargs) except ERROR_BASE as e: raise e From ff3dcd9b61a569d5e68487672d5694d324900ddc Mon Sep 17 00:00:00 2001 From: Jongmin Kim Date: Thu, 1 Dec 2022 19:56:03 +0900 Subject: [PATCH 7/9] fix: fix typo (cherry picked from commit bb84ed7e37947edcf2608c29371d513b8ffd0b6e) --- src/spaceone/core/locator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/spaceone/core/locator.py b/src/spaceone/core/locator.py index c61c009..c18a315 100644 --- a/src/spaceone/core/locator.py +++ b/src/spaceone/core/locator.py @@ -96,7 +96,7 @@ def get_connector(self, name: [str, object], **kwargs): return getattr(connector_module, name)(transaction=self.transaction, config=connector_conf, **kwargs) else: - name(transitions=self.transaction, **kwargs) + return name(transitions=self.transaction, **kwargs) except ERROR_BASE as e: raise e From 66cbbd54e2561cef0903ea3cc920cb86910649f9 Mon Sep 17 00:00:00 2001 From: Jongmin Kim Date: Fri, 16 Dec 2022 15:55:56 +0900 Subject: [PATCH 8/9] refactor: refactor tls termination (cherry picked from commit a9cb0a42f22b710617bb1ce8aaafa978e595e472) --- src/spaceone/core/pygrpc/client.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/spaceone/core/pygrpc/client.py b/src/spaceone/core/pygrpc/client.py index 0f8fc5f..46d5997 100644 --- a/src/spaceone/core/pygrpc/client.py +++ b/src/spaceone/core/pygrpc/client.py @@ -398,12 +398,13 @@ def _parse_endpoint(endpoint): def _create_secure_channel(endpoint, options): - host, port = _parse_endpoint(endpoint) - _check_server_port(host, port, endpoint) + # host, port = _parse_endpoint(endpoint) + # _check_server_port(host, port, endpoint) try: - cert = ssl.get_server_certificate((host, port)) - creds = grpc.ssl_channel_credentials(str.encode(cert)) + # cert = ssl.get_server_certificate((host, port)) + # creds = grpc.ssl_channel_credentials(str.encode(cert)) + creds = grpc.ssl_channel_credentials() except Exception as e: raise ERROR_GRPC_TLS_HANDSHAKE(reason=e) @@ -411,8 +412,8 @@ def _create_secure_channel(endpoint, options): def _create_insecure_channel(endpoint, options): - host, port = _parse_endpoint(endpoint) - _check_server_port(host, port, endpoint) + # host, port = _parse_endpoint(endpoint) + # _check_server_port(host, port, endpoint) return grpc.insecure_channel(endpoint, options=options) @@ -433,6 +434,11 @@ def client(endpoint=None, ssl_enabled=False, max_message_length=None, **client_o else: channel = _create_insecure_channel(endpoint, options) + try: + grpc.channel_ready_future(channel).result(timeout=3) + except Exception as e: + raise ERROR_GRPC_CONNECTION(channel=endpoint, message='Channel is not ready.') + try: _GRPC_CHANNEL[endpoint] = _GRPCClient(channel, client_opts, endpoint) except Exception as e: From ae2cf5a67a8fee31fec9b039a43aafe6465f5c5a Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 16 Dec 2022 07:00:28 +0000 Subject: [PATCH 9/9] [CI/CD] release version v1.10.4.2 --- src/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/VERSION b/src/VERSION index 1bc5ebf..80057b0 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -v1.10.4.1 +v1.10.4.2