perf: Copy move account failed message

pull/14758/head
feng 2025-01-03 14:45:54 +08:00 committed by feng626
parent 4fa88aa226
commit 024e2f6d79
1 changed files with 10 additions and 4 deletions

View File

@ -1,4 +1,6 @@
from django.db import transaction
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.utils.translation import gettext_lazy as _
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.generics import ListAPIView, CreateAPIView from rest_framework.generics import ListAPIView, CreateAPIView
from rest_framework.response import Response from rest_framework.response import Response
@ -14,10 +16,12 @@ from authentication.permissions import UserConfirmation, ConfirmType
from common.api.mixin import ExtraFilterFieldsMixin from common.api.mixin import ExtraFilterFieldsMixin
from common.drf.filters import AttrRulesFilterBackend from common.drf.filters import AttrRulesFilterBackend
from common.permissions import IsValidUser from common.permissions import IsValidUser
from common.utils import lazyproperty from common.utils import lazyproperty, get_logger
from orgs.mixins.api import OrgBulkModelViewSet from orgs.mixins.api import OrgBulkModelViewSet
from rbac.permissions import RBACPermission from rbac.permissions import RBACPermission
logger = get_logger(__file__)
__all__ = [ __all__ = [
'AccountViewSet', 'AccountSecretsViewSet', 'AccountViewSet', 'AccountSecretsViewSet',
'AccountHistoriesSecretAPI', 'AssetAccountBulkCreateApi', 'AccountHistoriesSecretAPI', 'AssetAccountBulkCreateApi',
@ -109,10 +113,12 @@ class AccountViewSet(OrgBulkModelViewSet):
account_data['asset'] = asset account_data['asset'] = asset
creation_results[asset] = {'state': 'created'} creation_results[asset] = {'state': 'created'}
try: try:
self.model.objects.create(**account_data) with transaction.atomic():
success_count += 1 self.model.objects.create(**account_data)
success_count += 1
except Exception as e: except Exception as e:
creation_results[asset] = {'error': str(e), 'state': 'error'} logger.debug(f'{ "Move" if move else "Copy" } to assets error: {e}')
creation_results[asset] = {'error': _('Account already exists'), 'state': 'error'}
results = [{'asset': str(asset), **res} for asset, res in creation_results.items()] results = [{'asset': str(asset), **res} for asset, res in creation_results.items()]