From 5e7650d7199cc6a3c79ba1ed5d15cfe4db2d7e7d Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 29 Oct 2020 18:17:41 +0800 Subject: [PATCH] =?UTF-8?q?perf(application):=20RemoteApp=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=BA=8F=E5=88=97=E7=B1=BB=E8=BF=94=E5=9B=9Easset=5Fi?= =?UTF-8?q?nfo=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/applications/serializers/remote_app.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/apps/applications/serializers/remote_app.py b/apps/applications/serializers/remote_app.py index 410a239a7..90f32f8cd 100644 --- a/apps/applications/serializers/remote_app.py +++ b/apps/applications/serializers/remote_app.py @@ -8,12 +8,15 @@ from rest_framework import serializers from common.serializers import AdaptedBulkListSerializer from common.fields.serializer import CustomMetaDictField +from common.utils import get_logger from orgs.mixins.serializers import BulkOrgResourceModelSerializer from assets.models import Asset from .. import const from ..models import RemoteApp, Category, Application +logger = get_logger(__file__) + class CharPrimaryKeyRelatedField(serializers.PrimaryKeyRelatedField): @@ -35,9 +38,26 @@ class CharPrimaryKeyRelatedField(serializers.PrimaryKeyRelatedField): class RemoteAppAttrsSerializer(serializers.Serializer): + asset_info = serializers.SerializerMethodField() asset = CharPrimaryKeyRelatedField(queryset=Asset.objects, required=False, label=_("Assets")) path = serializers.CharField(max_length=128, label=_('Remote App path')) + @staticmethod + def get_asset_info(obj): + asset_info = {} + asset_id = obj.get('asset') + if not asset_id: + return asset_info + try: + asset = Asset.objects.get(id=asset_id) + asset_info.update({ + 'id': str(asset.id), + 'hostname': asset.hostname + }) + except ObjectDoesNotExist as e: + logger.error(e) + return asset_info + class ChromeAttrsSerializer(RemoteAppAttrsSerializer): REMOTE_APP_PATH = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'