From b41880d4f21fbd9bc7d4852a1546f9934920cec1 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 21 Feb 2023 18:31:42 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=87=AA=E5=8A=A8=E5=8C=96name=20?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E9=94=AE=20=E6=A0=A1=E9=AA=8C=20(#9668)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/accounts/serializers/automations/base.py | 17 +++++-- .../serializers/automations/change_secret.py | 9 ++-- .../automations/gather_accounts.py | 6 ++- .../serializers/automations/push_account.py | 6 ++- apps/locale/ja/LC_MESSAGES/django.mo | 4 +- apps/locale/ja/LC_MESSAGES/django.po | 50 +++++++++++-------- apps/locale/zh/LC_MESSAGES/django.mo | 4 +- apps/locale/zh/LC_MESSAGES/django.po | 50 +++++++++++-------- 8 files changed, 89 insertions(+), 57 deletions(-) diff --git a/apps/accounts/serializers/automations/base.py b/apps/accounts/serializers/automations/base.py index 0939558e1..b8b5339d7 100644 --- a/apps/accounts/serializers/automations/base.py +++ b/apps/accounts/serializers/automations/base.py @@ -1,14 +1,14 @@ from django.utils.translation import ugettext as _ from rest_framework import serializers -from ops.mixin import PeriodTaskSerializerMixin +from accounts.models import AutomationExecution from assets.const import AutomationTypes from assets.models import Asset, Node, BaseAutomation -from accounts.models import AutomationExecution -from orgs.mixins.serializers import BulkOrgResourceModelSerializer -from common.utils import get_logger from common.const.choices import Trigger from common.serializers.fields import ObjectRelatedField, LabeledChoiceField +from common.utils import get_logger +from ops.mixin import PeriodTaskSerializerMixin +from orgs.mixins.serializers import BulkOrgResourceModelSerializer logger = get_logger(__file__) @@ -37,6 +37,15 @@ class BaseAutomationSerializer(PeriodTaskSerializerMixin, BulkOrgResourceModelSe 'executed_amount': {'label': _('Executed amount')}, } + def validate_name(self, name): + if BaseAutomation.objects.filter(name=name, type=self.model_type).exists(): + raise serializers.ValidationError(_('Name already exists')) + return name + + @property + def model_type(self): + raise NotImplementedError + class AutomationExecutionSerializer(serializers.ModelSerializer): snapshot = serializers.SerializerMethodField(label=_('Automation snapshot')) diff --git a/apps/accounts/serializers/automations/change_secret.py b/apps/accounts/serializers/automations/change_secret.py index d4c64ecf9..cd597a805 100644 --- a/apps/accounts/serializers/automations/change_secret.py +++ b/apps/accounts/serializers/automations/change_secret.py @@ -4,13 +4,13 @@ from django.utils.translation import ugettext as _ from rest_framework import serializers from accounts.const import ( - DEFAULT_PASSWORD_RULES, SecretType, SecretStrategy, SSHKeyStrategy + AutomationTypes, DEFAULT_PASSWORD_RULES, + SecretType, SecretStrategy, SSHKeyStrategy ) from accounts.models import ( Account, ChangeSecretAutomation, - ChangeSecretRecord + ChangeSecretRecord, AutomationExecution ) -from accounts.models import AutomationExecution from accounts.serializers import AuthValidateMixin from assets.models import Asset from common.serializers.fields import LabeledChoiceField, ObjectRelatedField @@ -58,6 +58,9 @@ class ChangeSecretAutomationSerializer(AuthValidateMixin, BaseAutomationSerializ "Currently only mail sending is supported" )}, }} + @property + def model_type(self): + return AutomationTypes.change_secret def validate_password_rules(self, password_rules): secret_type = self.initial_data['secret_type'] diff --git a/apps/accounts/serializers/automations/gather_accounts.py b/apps/accounts/serializers/automations/gather_accounts.py index ffca89198..b906e7881 100644 --- a/apps/accounts/serializers/automations/gather_accounts.py +++ b/apps/accounts/serializers/automations/gather_accounts.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -from django.utils.translation import ugettext_lazy as _ +from accounts.const import AutomationTypes from accounts.models import GatherAccountsAutomation from common.utils import get_logger @@ -20,3 +20,7 @@ class GatherAccountAutomationSerializer(BaseAutomationSerializer): fields = BaseAutomationSerializer.Meta.fields + read_only_fields extra_kwargs = BaseAutomationSerializer.Meta.extra_kwargs + + @property + def model_type(self): + return AutomationTypes.gather_accounts diff --git a/apps/accounts/serializers/automations/push_account.py b/apps/accounts/serializers/automations/push_account.py index 07ebaa2d0..b9982300b 100644 --- a/apps/accounts/serializers/automations/push_account.py +++ b/apps/accounts/serializers/automations/push_account.py @@ -1,4 +1,4 @@ -import copy +from accounts.const import AutomationTypes from accounts.models import PushAccountAutomation from .change_secret import ( ChangeSecretAutomationSerializer, ChangeSecretUpdateAssetSerializer, @@ -14,6 +14,10 @@ class PushAccountAutomationSerializer(ChangeSecretAutomationSerializer): if n not in ['recipients'] ] + @property + def model_type(self): + return AutomationTypes.push_account + class PushAccountUpdateAssetSerializer(ChangeSecretUpdateAssetSerializer): class Meta: diff --git a/apps/locale/ja/LC_MESSAGES/django.mo b/apps/locale/ja/LC_MESSAGES/django.mo index 9380816b8..df0751934 100644 --- a/apps/locale/ja/LC_MESSAGES/django.mo +++ b/apps/locale/ja/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:014483808a830a01f5432fdc44bc34f7f392e53a160ffa97eb377dbb49e0ec9a -size 135547 +oid sha256:331188bb5169bb463da018a635589e12a2136d476db264ac7e5d6e5d63ca474a +size 135916 diff --git a/apps/locale/ja/LC_MESSAGES/django.po b/apps/locale/ja/LC_MESSAGES/django.po index 038515a76..4e86c7f0c 100644 --- a/apps/locale/ja/LC_MESSAGES/django.po +++ b/apps/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-21 13:46+0800\n" +"POT-Creation-Date: 2023-02-21 18:29+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -162,8 +162,8 @@ msgstr "作成のみ" #: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:95 #: accounts/serializers/account/gathered_account.py:10 -#: accounts/serializers/automations/change_secret.py:107 -#: accounts/serializers/automations/change_secret.py:127 +#: accounts/serializers/automations/change_secret.py:111 +#: accounts/serializers/automations/change_secret.py:131 #: acls/models/base.py:100 acls/serializers/base.py:56 #: assets/models/asset/common.py:92 assets/models/asset/common.py:279 #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 @@ -192,8 +192,8 @@ msgid "Source" msgstr "ソース" #: accounts/models/account.py:58 -#: accounts/serializers/automations/change_secret.py:108 -#: accounts/serializers/automations/change_secret.py:128 +#: accounts/serializers/automations/change_secret.py:112 +#: accounts/serializers/automations/change_secret.py:132 #: acls/models/base.py:102 acls/serializers/base.py:57 #: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28 #: audits/models.py:49 ops/models/base.py:18 @@ -238,7 +238,7 @@ msgstr "アセット アカウント テンプレートのパスワードを変 #: accounts/models/automations/backup_account.py:27 #: accounts/models/automations/change_secret.py:47 #: accounts/serializers/account/backup.py:34 -#: accounts/serializers/automations/change_secret.py:56 +#: accounts/serializers/automations/change_secret.py:57 msgid "Recipient" msgstr "受信者" @@ -269,7 +269,7 @@ msgstr "アカウントのバックアップスナップショット" #: accounts/models/automations/backup_account.py:94 #: accounts/serializers/account/backup.py:42 -#: accounts/serializers/automations/base.py:44 +#: accounts/serializers/automations/base.py:53 #: assets/models/automations/base.py:121 #: assets/serializers/automations/base.py:40 msgid "Trigger mode" @@ -281,8 +281,8 @@ msgid "Reason" msgstr "理由" #: accounts/models/automations/backup_account.py:99 -#: accounts/serializers/automations/change_secret.py:106 -#: accounts/serializers/automations/change_secret.py:129 +#: accounts/serializers/automations/change_secret.py:110 +#: accounts/serializers/automations/change_secret.py:133 #: ops/serializers/job.py:64 terminal/serializers/session.py:45 msgid "Is success" msgstr "成功は" @@ -540,7 +540,7 @@ msgid "Category" msgstr "カテゴリ" #: accounts/serializers/account/account.py:76 -#: accounts/serializers/automations/base.py:43 acls/models/command_acl.py:24 +#: accounts/serializers/automations/base.py:52 acls/models/command_acl.py:24 #: acls/serializers/command_acl.py:18 applications/models.py:14 #: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/cmd_filter.py:74 assets/models/platform.py:78 @@ -575,7 +575,7 @@ msgid "Executed amount" msgstr "実行回数" #: accounts/serializers/account/backup.py:35 -#: accounts/serializers/automations/change_secret.py:57 +#: accounts/serializers/automations/change_secret.py:58 msgid "Currently only mail sending is supported" msgstr "現在、メール送信のみがサポートされています" @@ -612,6 +612,10 @@ msgid "Nodes" msgstr "ノード" #: accounts/serializers/automations/base.py:42 +msgid "Name already exists" +msgstr "名前は既に存在します。" + +#: accounts/serializers/automations/base.py:51 #: assets/models/automations/base.py:117 #: assets/serializers/automations/base.py:39 msgid "Automation snapshot" @@ -621,20 +625,20 @@ msgstr "自動スナップショット" msgid "SSH Key strategy" msgstr "SSHキー戦略" -#: accounts/serializers/automations/change_secret.py:76 +#: accounts/serializers/automations/change_secret.py:80 msgid "* Please enter the correct password length" msgstr "* 正しいパスワードの長さを入力してください" -#: accounts/serializers/automations/change_secret.py:80 +#: accounts/serializers/automations/change_secret.py:84 msgid "* Password length range 6-30 bits" msgstr "* パスワードの長さの範囲6-30ビット" -#: accounts/serializers/automations/change_secret.py:110 +#: accounts/serializers/automations/change_secret.py:114 #: assets/models/automations/base.py:126 msgid "Automation task execution" msgstr "自動タスク実行履歴" -#: accounts/serializers/automations/change_secret.py:150 audits/const.py:52 +#: accounts/serializers/automations/change_secret.py:154 audits/const.py:52 #: audits/models.py:54 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:18 ops/const.py:56 ops/serializers/celery.py:39 #: terminal/const.py:59 terminal/models/session/sharing.py:103 @@ -642,7 +646,7 @@ msgstr "自動タスク実行履歴" msgid "Success" msgstr "成功" -#: accounts/serializers/automations/change_secret.py:151 audits/const.py:53 +#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19 #: ops/const.py:58 terminal/const.py:60 xpack/plugins/cloud/const.py:41 msgid "Failed" @@ -7286,6 +7290,14 @@ msgstr "実行回数" msgid "Instance count" msgstr "インスタンス数" +#: xpack/plugins/cloud/tasks.py:27 +msgid "Run sync instance task" +msgstr "同期インスタンス タスクを実行する" + +#: xpack/plugins/cloud/tasks.py:41 +msgid "Period clean sync instance task execution" +msgstr "同期インスタンス タスクの実行記録を定期的にクリアする" + #: xpack/plugins/cloud/utils.py:69 msgid "Account unavailable" msgstr "利用できないアカウント" @@ -7365,9 +7377,3 @@ msgstr "コミュニティ版" #~ msgid "Remove asset from node" #~ msgstr "ノードからアセットを削除" - -#~ msgid "Run sync instance task" -#~ msgstr "同期インスタンス タスクを実行する" - -#~ msgid "Period clean sync instance task execution" -#~ msgstr "同期インスタンス タスクの実行記録を定期的にクリアする" diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 70960ba2c..cd68677c8 100644 --- a/apps/locale/zh/LC_MESSAGES/django.mo +++ b/apps/locale/zh/LC_MESSAGES/django.mo @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c1524b6173a2613845d9450d84ef8ca9cf1be6d0f7cdae2a89f6131d6abc1f1 -size 111449 +oid sha256:2cdc2b875c98f41bd698833a989195d8cc4245f39f52b7eab41ad4d95075cb17 +size 111666 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index d884a2053..c6428d280 100644 --- a/apps/locale/zh/LC_MESSAGES/django.po +++ b/apps/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: JumpServer 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-21 13:46+0800\n" +"POT-Creation-Date: 2023-02-21 18:29+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -161,8 +161,8 @@ msgstr "仅创建" #: accounts/models/automations/gather_account.py:16 #: accounts/serializers/account/account.py:95 #: accounts/serializers/account/gathered_account.py:10 -#: accounts/serializers/automations/change_secret.py:107 -#: accounts/serializers/automations/change_secret.py:127 +#: accounts/serializers/automations/change_secret.py:111 +#: accounts/serializers/automations/change_secret.py:131 #: acls/models/base.py:100 acls/serializers/base.py:56 #: assets/models/asset/common.py:92 assets/models/asset/common.py:279 #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 @@ -191,8 +191,8 @@ msgid "Source" msgstr "来源" #: accounts/models/account.py:58 -#: accounts/serializers/automations/change_secret.py:108 -#: accounts/serializers/automations/change_secret.py:128 +#: accounts/serializers/automations/change_secret.py:112 +#: accounts/serializers/automations/change_secret.py:132 #: acls/models/base.py:102 acls/serializers/base.py:57 #: assets/serializers/asset/common.py:125 assets/serializers/gateway.py:28 #: audits/models.py:49 ops/models/base.py:18 @@ -237,7 +237,7 @@ msgstr "可以更改资产账号模版密码" #: accounts/models/automations/backup_account.py:27 #: accounts/models/automations/change_secret.py:47 #: accounts/serializers/account/backup.py:34 -#: accounts/serializers/automations/change_secret.py:56 +#: accounts/serializers/automations/change_secret.py:57 msgid "Recipient" msgstr "收件人" @@ -268,7 +268,7 @@ msgstr "账号备份快照" #: accounts/models/automations/backup_account.py:94 #: accounts/serializers/account/backup.py:42 -#: accounts/serializers/automations/base.py:44 +#: accounts/serializers/automations/base.py:53 #: assets/models/automations/base.py:121 #: assets/serializers/automations/base.py:40 msgid "Trigger mode" @@ -280,8 +280,8 @@ msgid "Reason" msgstr "原因" #: accounts/models/automations/backup_account.py:99 -#: accounts/serializers/automations/change_secret.py:106 -#: accounts/serializers/automations/change_secret.py:129 +#: accounts/serializers/automations/change_secret.py:110 +#: accounts/serializers/automations/change_secret.py:133 #: ops/serializers/job.py:64 terminal/serializers/session.py:45 msgid "Is success" msgstr "是否成功" @@ -536,7 +536,7 @@ msgid "Category" msgstr "类别" #: accounts/serializers/account/account.py:76 -#: accounts/serializers/automations/base.py:43 acls/models/command_acl.py:24 +#: accounts/serializers/automations/base.py:52 acls/models/command_acl.py:24 #: acls/serializers/command_acl.py:18 applications/models.py:14 #: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/cmd_filter.py:74 assets/models/platform.py:78 @@ -571,7 +571,7 @@ msgid "Executed amount" msgstr "执行次数" #: accounts/serializers/account/backup.py:35 -#: accounts/serializers/automations/change_secret.py:57 +#: accounts/serializers/automations/change_secret.py:58 msgid "Currently only mail sending is supported" msgstr "当前只支持邮件发送" @@ -608,6 +608,10 @@ msgid "Nodes" msgstr "节点" #: accounts/serializers/automations/base.py:42 +msgid "Name already exists" +msgstr "名称已存在" + +#: accounts/serializers/automations/base.py:51 #: assets/models/automations/base.py:117 #: assets/serializers/automations/base.py:39 msgid "Automation snapshot" @@ -617,20 +621,20 @@ msgstr "自动化快照" msgid "SSH Key strategy" msgstr "SSH 密钥更改方式" -#: accounts/serializers/automations/change_secret.py:76 +#: accounts/serializers/automations/change_secret.py:80 msgid "* Please enter the correct password length" msgstr "* 请输入正确的密码长度" -#: accounts/serializers/automations/change_secret.py:80 +#: accounts/serializers/automations/change_secret.py:84 msgid "* Password length range 6-30 bits" msgstr "* 密码长度范围 6-30 位" -#: accounts/serializers/automations/change_secret.py:110 +#: accounts/serializers/automations/change_secret.py:114 #: assets/models/automations/base.py:126 msgid "Automation task execution" msgstr "自动化任务执行历史" -#: accounts/serializers/automations/change_secret.py:150 audits/const.py:52 +#: accounts/serializers/automations/change_secret.py:154 audits/const.py:52 #: audits/models.py:54 audits/signal_handlers/activity_log.py:33 #: common/const/choices.py:18 ops/const.py:56 ops/serializers/celery.py:39 #: terminal/const.py:59 terminal/models/session/sharing.py:103 @@ -638,7 +642,7 @@ msgstr "自动化任务执行历史" msgid "Success" msgstr "成功" -#: accounts/serializers/automations/change_secret.py:151 audits/const.py:53 +#: accounts/serializers/automations/change_secret.py:155 audits/const.py:53 #: audits/signal_handlers/activity_log.py:33 common/const/choices.py:19 #: ops/const.py:58 terminal/const.py:60 xpack/plugins/cloud/const.py:41 msgid "Failed" @@ -7191,6 +7195,14 @@ msgstr "执行次数" msgid "Instance count" msgstr "实例个数" +#: xpack/plugins/cloud/tasks.py:27 +msgid "Run sync instance task" +msgstr "执行同步实例任务" + +#: xpack/plugins/cloud/tasks.py:41 +msgid "Period clean sync instance task execution" +msgstr "定期清除同步实例任务执行记录" + #: xpack/plugins/cloud/utils.py:69 msgid "Account unavailable" msgstr "账号无效" @@ -7271,12 +7283,6 @@ msgstr "社区版" #~ msgid "Remove asset from node" #~ msgstr "从节点移除资产" -#~ msgid "Run sync instance task" -#~ msgstr "执行同步实例任务" - -#~ msgid "Period clean sync instance task execution" -#~ msgstr "定期清除同步实例任务执行记录" - #~ msgid "Clean audits log" #~ msgstr "清理审计日志"