From 18681d1f50cdbfc90cbcbbbed7e6c993038f8b4a Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 17 Jan 2024 18:41:29 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=BF=9E=E6=8E=A5k8s=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86=20(#12563)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/assets/utils/k8s.py | 6 +++--- apps/perms/api/user_permission/tree/node_with_asset.py | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/assets/utils/k8s.py b/apps/assets/utils/k8s.py index 2b33ded89..dc3cd8bc6 100644 --- a/apps/assets/utils/k8s.py +++ b/apps/assets/utils/k8s.py @@ -4,7 +4,6 @@ from urllib.parse import urlencode, urlparse from kubernetes import client from kubernetes.client import api_client from kubernetes.client.api import core_v1_api -from kubernetes.client.exceptions import ApiException from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError from common.utils import get_logger @@ -88,8 +87,9 @@ class KubernetesClient: if hasattr(self, func_name): try: data = getattr(self, func_name)(*args) - except ApiException as e: - logger.error(e.reason) + except Exception as e: + logger.error(e) + raise e if self.server: self.server.stop() diff --git a/apps/perms/api/user_permission/tree/node_with_asset.py b/apps/perms/api/user_permission/tree/node_with_asset.py index c7bb0b8bb..114c5475e 100644 --- a/apps/perms/api/user_permission/tree/node_with_asset.py +++ b/apps/perms/api/user_permission/tree/node_with_asset.py @@ -14,6 +14,7 @@ from assets.api import SerializeToTreeNodeMixin from assets.models import Asset from assets.utils import KubernetesTree from authentication.models import ConnectionToken +from common.exceptions import JMSException from common.utils import get_object_or_none, lazyproperty from common.utils.common import timeit from perms.hands import Node @@ -264,5 +265,8 @@ class UserGrantedK8sAsTreeApi(SelfOrPKUserMixin, ListAPIView): if not any([namespace, pod]) and not key: asset_node = k8s_tree_instance.as_asset_tree_node() tree.append(asset_node) - tree.extend(k8s_tree_instance.async_tree_node(namespace, pod)) - return Response(data=tree) + try: + tree.extend(k8s_tree_instance.async_tree_node(namespace, pod)) + return Response(data=tree) + except Exception as e: + raise JMSException(e)