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', {})
asset = self.host_asset_mapper.get(host)
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)
else:
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.models import Account, AccountTemplate
from accounts.tasks import push_accounts_to_assets
from assets.const import Category, AllTypes
from common.serializers.fields import ObjectRelatedField, LabeledChoiceField
from common.serializers import SecretReadableMixin, BulkModelSerializer
from .base import BaseAccountSerializer
@ -60,11 +61,12 @@ class AccountSerializerCreateMixin(
class AccountAssetSerializer(serializers.ModelSerializer):
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:
model = Asset
fields = ['id', 'name', 'address', 'category', 'platform']
fields = ['id', 'name', 'address', 'type', 'category', 'platform']
def to_internal_value(self, data):
if isinstance(data, dict):