From a498b22e807d947e2b00a4d8638fb0525d675721 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 26 Feb 2025 15:38:46 +0800 Subject: [PATCH] perf: Update account change secret status and date on successful secret change --- apps/accounts/automations/base/manager.py | 4 +++- apps/accounts/filters.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/accounts/automations/base/manager.py b/apps/accounts/automations/base/manager.py index b52dd4c2a..bc33f588e 100644 --- a/apps/accounts/automations/base/manager.py +++ b/apps/accounts/automations/base/manager.py @@ -138,10 +138,12 @@ class BaseChangeSecretPushManager(AccountBasePlaybookManager): account.secret = getattr(recorder, 'new_secret', account.secret) account.date_updated = timezone.now() + account.date_change_secret = timezone.now() + account.change_secret_status = ChangeSecretRecordStatusChoice.success with safe_db_connection(): recorder.save(update_fields=['status', 'date_finished']) - account.save(update_fields=['secret', 'date_updated']) + account.save(update_fields=['secret', 'date_updated', 'date_change_secret', 'change_secret_status']) self.summary['ok_accounts'] += 1 self.result['ok_accounts'].append( diff --git a/apps/accounts/filters.py b/apps/accounts/filters.py index 406f5b832..b305196df 100644 --- a/apps/accounts/filters.py +++ b/apps/accounts/filters.py @@ -7,6 +7,7 @@ from django_filters import rest_framework as drf_filters from assets.models import Node from common.drf.filters import BaseFilterSet from common.utils.timezone import local_zero_hour, local_now +from .const.automation import ChangeSecretRecordStatusChoice from .models import Account, GatheredAccount, ChangeSecretRecord, PushSecretRecord, IntegrationApplication @@ -104,7 +105,7 @@ class AccountFilterSet(BaseFilterSet): if name == "latest_secret_change_failed": queryset = queryset.filter(date_change_secret__gt=date).exclude( - change_secret_status="ok" + change_secret_status=ChangeSecretRecordStatusChoice.success ) if kwargs: