From 8a7ecda4f6e18a53e3677dcf4a2468849a47069a Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Mon, 5 Dec 2022 11:21:01 +0800 Subject: [PATCH] perf: asset add automation_enabled_info (#9154) Co-authored-by: feng <1304903146@qq.com> --- apps/assets/serializers/asset/common.py | 20 +++++++++++++++++--- apps/assets/serializers/platform.py | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/assets/serializers/asset/common.py b/apps/assets/serializers/asset/common.py index 179760922..45ca422df 100644 --- a/apps/assets/serializers/asset/common.py +++ b/apps/assets/serializers/asset/common.py @@ -53,7 +53,7 @@ class AssetAccountSerializer(AccountSerializer): 'version', 'secret_type', ] fields_write_only = [ - 'secret', 'push_now' + 'secret', 'push_now' ] fields = fields_mini + fields_write_only @@ -67,6 +67,7 @@ class AssetSerializer(OrgResourceSerializerMixin, WritableNestedModelSerializer) labels = AssetLabelSerializer(many=True, required=False, label=_('Labels')) protocols = AssetProtocolsSerializer(many=True, required=False, label=_('Protocols')) accounts = AssetAccountSerializer(many=True, required=False, label=_('Accounts')) + automation_enabled_info = serializers.SerializerMethodField() class Meta: model = Asset @@ -78,8 +79,8 @@ class AssetSerializer(OrgResourceSerializerMixin, WritableNestedModelSerializer) ] read_only_fields = [ 'category', 'type', 'specific', 'info', - 'connectivity', 'date_verified', - 'created_by', 'date_created', + 'connectivity', 'date_verified', 'created_by', + 'date_created', 'automation_enabled_info' ] fields = fields_small + fields_fk + fields_m2m + read_only_fields extra_kwargs = { @@ -93,6 +94,19 @@ class AssetSerializer(OrgResourceSerializerMixin, WritableNestedModelSerializer) names.remove('specific') return names + @staticmethod + def get_automation_enabled_info(obj): + automation = obj.platform.automation + return { + 'ping_enabled': automation.ping_enabled, + 'ansible_enabled': automation.ansible_enabled, + 'gather_facts_enabled': automation.gather_facts_enabled, + 'push_account_enabled': automation.push_account_enabled, + 'change_secret_enabled': automation.change_secret_enabled, + 'verify_account_enabled': automation.verify_account_enabled, + 'gather_accounts_enabled': automation.gather_accounts_enabled, + } + @classmethod def setup_eager_loading(cls, queryset): """ Perform necessary eager loading of data. """ diff --git a/apps/assets/serializers/platform.py b/apps/assets/serializers/platform.py index 8f8dcb5a3..ccb536bb2 100644 --- a/apps/assets/serializers/platform.py +++ b/apps/assets/serializers/platform.py @@ -38,6 +38,7 @@ class ProtocolSettingSerializer(serializers.Serializer): class PlatformAutomationSerializer(serializers.ModelSerializer): + class Meta: model = PlatformAutomation fields = [