From 0ad461a8043c8c5d7468b27bed022d2ce29d6239 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Fri, 24 Feb 2023 18:08:40 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9host=20info=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3,=20=E7=A4=BE=E5=8C=BA=E5=BC=80=E6=94=BEapple?= =?UTF-8?q?t,=20=E4=BF=AE=E6=94=B9=E6=94=B9=E5=AF=86=E5=8F=91=E9=82=AE?= =?UTF-8?q?=E4=BB=B6bug=20(#9760)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/accounts/automations/change_secret/manager.py | 2 +- apps/assets/api/asset/asset.py | 3 ++- apps/assets/api/asset/host.py | 8 +++++++- apps/terminal/connect_methods.py | 2 -- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/accounts/automations/change_secret/manager.py b/apps/accounts/automations/change_secret/manager.py index 3dd8dade6..002651330 100644 --- a/apps/accounts/automations/change_secret/manager.py +++ b/apps/accounts/automations/change_secret/manager.py @@ -206,7 +206,7 @@ class ChangeSecretManager(AccountBasePlaybookManager): serializer = serializer_cls(recorders, many=True) header = [str(v.label) for v in serializer.child.fields.values()] - rows = [list(row.values()) for row in serializer.data] + rows = [[str(i) for i in row.values()] for row in serializer.data] if not rows: return False diff --git a/apps/assets/api/asset/asset.py b/apps/assets/api/asset/asset.py index d8b46baab..c917e09d9 100644 --- a/apps/assets/api/asset/asset.py +++ b/apps/assets/api/asset/asset.py @@ -99,13 +99,14 @@ class AssetViewSet(SuggestionMixin, NodeFilterMixin, OrgBulkModelViewSet): ("platform", serializers.PlatformSerializer), ("suggestion", serializers.MiniAssetSerializer), ("gateways", serializers.GatewaySerializer), - ("spec_info", serializers.SpecSerializer) + ("spec_info", serializers.SpecSerializer), ) rbac_perms = ( ("match", "assets.match_asset"), ("platform", "assets.view_platform"), ("gateways", "assets.view_gateway"), ("spec_info", "assets.view_asset"), + ("info", "assets.view_asset"), ) extra_filter_backends = [LabelFilterBackend, IpInFilterBackend, NodeFilterBackend] diff --git a/apps/assets/api/asset/host.py b/apps/assets/api/asset/host.py index d923b2b84..b92448bfb 100644 --- a/apps/assets/api/asset/host.py +++ b/apps/assets/api/asset/host.py @@ -21,4 +21,10 @@ class HostViewSet(AssetViewSet): @action(methods=["GET"], detail=True, url_path="info") def info(self, *args, **kwargs): asset = super().get_object() - return Response(asset.info) + serializer = self.get_serializer(asset.info) + data = serializer.data + data['asset'] = { + 'id': asset.id, 'name': asset.name, + 'address': asset.address + } + return Response(data) diff --git a/apps/terminal/connect_methods.py b/apps/terminal/connect_methods.py index 3ad407d77..a418c1460 100644 --- a/apps/terminal/connect_methods.py +++ b/apps/terminal/connect_methods.py @@ -137,8 +137,6 @@ class AppletMethod: from .models import Applet, AppletHost methods = defaultdict(list) - if not settings.XPACK_ENABLED: - return methods has_applet_hosts = AppletHost.objects.all().exists() applets = Applet.objects.filter(is_active=True)