perf: account seri type category (#9445)

Co-authored-by: feng <1304903146@qq.com>
pull/9446/head
fit2bot 2023-02-06 18:30:17 +08:00 committed by GitHub
parent 47f23a1b9c
commit c7ce535630
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 3 deletions

View File

@ -53,7 +53,7 @@ class GatherAccountsManager(AccountBasePlaybookManager):
info = result.get('debug', {}).get('res', {}).get('info', {}) info = result.get('debug', {}).get('res', {}).get('info', {})
asset = self.host_asset_mapper.get(host) asset = self.host_asset_mapper.get(host)
if asset and info: if asset and info:
result = self.filter_success_result(host, info) result = self.filter_success_result(asset.type, info)
self.bulk_create_accounts(asset, result) self.bulk_create_accounts(asset, result)
else: else:
logger.error("Not found info".format(host)) logger.error("Not found info".format(host))

View File

@ -5,6 +5,7 @@ from assets.models import Asset
from accounts.const import SecretType, Source from accounts.const import SecretType, Source
from accounts.models import Account, AccountTemplate from accounts.models import Account, AccountTemplate
from accounts.tasks import push_accounts_to_assets from accounts.tasks import push_accounts_to_assets
from assets.const import Category, AllTypes
from common.serializers.fields import ObjectRelatedField, LabeledChoiceField from common.serializers.fields import ObjectRelatedField, LabeledChoiceField
from common.serializers import SecretReadableMixin, BulkModelSerializer from common.serializers import SecretReadableMixin, BulkModelSerializer
from .base import BaseAccountSerializer from .base import BaseAccountSerializer
@ -60,11 +61,12 @@ class AccountSerializerCreateMixin(
class AccountAssetSerializer(serializers.ModelSerializer): class AccountAssetSerializer(serializers.ModelSerializer):
platform = ObjectRelatedField(read_only=True) platform = ObjectRelatedField(read_only=True)
category = serializers.CharField(source='platform.category', read_only=True) category = LabeledChoiceField(choices=Category.choices, read_only=True, label=_('Category'))
type = LabeledChoiceField(choices=AllTypes.choices(), read_only=True, label=_('Type'))
class Meta: class Meta:
model = Asset model = Asset
fields = ['id', 'name', 'address', 'category', 'platform'] fields = ['id', 'name', 'address', 'type', 'category', 'platform']
def to_internal_value(self, data): def to_internal_value(self, data):
if isinstance(data, dict): if isinstance(data, dict):