From df249a03553608543610083912bda69d8038640c Mon Sep 17 00:00:00 2001 From: Aaron3S Date: Tue, 14 Mar 2023 17:37:02 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=20playbook=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=AD=96=E7=95=A5,=E6=AD=A3=E5=9C=A8?= =?UTF-8?q?=E8=A2=AB=20job=20=E4=BD=BF=E7=94=A8=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=A2=AB=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/locale/ja/LC_MESSAGES/django.mo | 4 +- apps/locale/ja/LC_MESSAGES/django.po | 133 +++++++++++++++------------ apps/locale/zh/LC_MESSAGES/django.mo | 4 +- apps/locale/zh/LC_MESSAGES/django.po | 133 +++++++++++++++------------ apps/ops/api/playbook.py | 9 ++ 5 files changed, 163 insertions(+), 120 deletions(-) diff --git a/apps/locale/ja/LC_MESSAGES/django.mo b/apps/locale/ja/LC_MESSAGES/django.mo index cfe8bd469..472b329b3 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:8c2600b7094db2a9e64862169ff1c826d5064fae9b9e71744545a1cea88cbc65 -size 136280 +oid sha256:6fa80b59b9b5f95a9cfcad8ec47eacd519bb962d139ab90463795a7b306a0a72 +size 137935 diff --git a/apps/locale/ja/LC_MESSAGES/django.po b/apps/locale/ja/LC_MESSAGES/django.po index 90e277583..d4b4ecc20 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-03-10 15:11+0800\n" +"POT-Creation-Date: 2023-03-14 17:34+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -169,7 +169,7 @@ msgstr "作成のみ" #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 #: assets/serializers/label.py:27 audits/models.py:48 #: authentication/models/connection_token.py:33 -#: perms/models/asset_permission.py:64 perms/serializers/permission.py:29 +#: perms/models/asset_permission.py:64 perms/serializers/permission.py:35 #: terminal/backends/command/models.py:20 terminal/models/session/session.py:32 #: terminal/notifications.py:95 terminal/serializers/command.py:17 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212 @@ -195,9 +195,9 @@ msgstr "ソース" #: 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:124 assets/serializers/gateway.py:28 +#: assets/serializers/asset/common.py:131 assets/serializers/gateway.py:28 #: audits/models.py:49 ops/models/base.py:18 -#: perms/models/asset_permission.py:70 perms/serializers/permission.py:34 +#: perms/models/asset_permission.py:70 perms/serializers/permission.py:40 #: terminal/backends/command/models.py:21 terminal/models/session/session.py:34 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85 msgid "Account" @@ -446,7 +446,7 @@ msgstr "アカウントの確認" #: assets/models/cmd_filter.py:21 assets/models/domain.py:18 #: assets/models/group.py:20 assets/models/label.py:18 #: assets/models/platform.py:21 assets/models/platform.py:76 -#: assets/serializers/asset/common.py:67 assets/serializers/asset/common.py:143 +#: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151 #: assets/serializers/platform.py:133 #: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21 #: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57 @@ -470,7 +470,7 @@ msgstr "特権アカウント" #: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39 #: assets/models/label.py:22 #: authentication/serializers/connect_token_secret.py:107 -#: terminal/models/applet/applet.py:32 users/serializers/user.py:161 +#: terminal/models/applet/applet.py:32 users/serializers/user.py:162 msgid "Is active" msgstr "アクティブです。" @@ -516,23 +516,23 @@ msgstr "" "情報にアクセスしてください-> ファイル暗号化パスワードを設定してください" #: accounts/serializers/account/account.py:65 -#: assets/serializers/asset/common.py:65 settings/serializers/auth/sms.py:75 +#: assets/serializers/asset/common.py:72 settings/serializers/auth/sms.py:75 msgid "Template" msgstr "テンプレート" #: accounts/serializers/account/account.py:68 -#: assets/serializers/asset/common.py:62 +#: assets/serializers/asset/common.py:69 msgid "Push now" msgstr "今すぐプッシュ" #: accounts/serializers/account/account.py:70 -#: accounts/serializers/account/base.py:62 +#: accounts/serializers/account/base.py:64 msgid "Has secret" msgstr "エスクローされたパスワード" #: accounts/serializers/account/account.py:75 applications/models.py:11 #: assets/models/label.py:21 assets/models/platform.py:77 -#: assets/serializers/asset/common.py:120 assets/serializers/cagegory.py:8 +#: assets/serializers/asset/common.py:127 assets/serializers/cagegory.py:8 #: assets/serializers/platform.py:94 assets/serializers/platform.py:134 #: perms/serializers/user_permission.py:26 settings/models.py:35 #: tickets/models/ticket/apply_application.py:13 @@ -544,7 +544,7 @@ msgstr "カテゴリ" #: 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 -#: assets/serializers/asset/common.py:121 assets/serializers/platform.py:93 +#: assets/serializers/asset/common.py:128 assets/serializers/platform.py:93 #: audits/serializers.py:48 #: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31 @@ -591,8 +591,8 @@ msgstr "キー/パスワード" msgid "Key password" msgstr "キーパスワード" -#: accounts/serializers/account/base.py:79 -#: assets/serializers/asset/common.py:291 +#: accounts/serializers/account/base.py:81 +#: assets/serializers/asset/common.py:301 msgid "Spec info" msgstr "特別情報" @@ -741,7 +741,7 @@ msgstr "アクティブ" #: authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 -#: perms/serializers/permission.py:25 rbac/builtin.py:122 +#: perms/serializers/permission.py:31 rbac/builtin.py:122 #: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19 #: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32 #: terminal/notifications.py:96 terminal/notifications.py:144 @@ -996,7 +996,7 @@ msgid "Device" msgstr "インターネット機器" #: assets/const/category.py:13 assets/models/asset/database.py:9 -#: assets/models/asset/database.py:24 assets/serializers/asset/common.py:108 +#: assets/models/asset/database.py:24 assets/serializers/asset/common.py:115 msgid "Database" msgstr "データベース" @@ -1060,7 +1060,7 @@ msgid "Basic" msgstr "基本" #: assets/const/web.py:61 assets/models/asset/web.py:13 -#: assets/serializers/asset/common.py:116 assets/serializers/platform.py:40 +#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:40 msgid "Script" msgstr "脚本" @@ -1189,7 +1189,7 @@ msgstr "クラウド サービス" msgid "Port" msgstr "ポート" -#: assets/models/asset/common.py:103 assets/serializers/asset/common.py:144 +#: assets/models/asset/common.py:103 assets/serializers/asset/common.py:152 msgid "Address" msgstr "アドレス" @@ -1226,7 +1226,7 @@ msgstr "アセットを一致させることができます" msgid "Can change asset nodes" msgstr "資産ノードを変更できます" -#: assets/models/asset/database.py:10 assets/serializers/asset/common.py:109 +#: assets/models/asset/database.py:10 assets/serializers/asset/common.py:116 #: settings/serializers/email.py:37 msgid "Use SSL" msgstr "SSLの使用" @@ -1243,7 +1243,7 @@ msgstr "クライアント証明書" msgid "Client key" msgstr "クライアントキー" -#: assets/models/asset/database.py:14 assets/serializers/asset/common.py:110 +#: assets/models/asset/database.py:14 assets/serializers/asset/common.py:117 msgid "Allow invalid cert" msgstr "証明書チェックを無視" @@ -1251,23 +1251,23 @@ msgstr "証明書チェックを無視" msgid "Autofill" msgstr "自動充填" -#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:113 +#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120 #: assets/serializers/platform.py:32 msgid "Username selector" msgstr "ユーザー名ピッカー" -#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:114 +#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121 #: assets/serializers/platform.py:35 msgid "Password selector" msgstr "パスワードセレクター" -#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:115 +#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122 #: assets/serializers/platform.py:38 msgid "Submit selector" msgstr "ボタンセレクターを確認する" #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 -#: assets/serializers/asset/common.py:290 rbac/tree.py:35 +#: assets/serializers/asset/common.py:300 rbac/tree.py:35 msgid "Accounts" msgstr "アカウント" @@ -1307,7 +1307,7 @@ msgid "Date verified" msgstr "確認済みの日付" #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61 -#: perms/serializers/permission.py:27 users/models/group.py:25 +#: perms/serializers/permission.py:33 users/models/group.py:25 #: users/models/user.py:723 msgid "User group" msgstr "ユーザーグループ" @@ -1369,7 +1369,7 @@ msgstr "システム" msgid "Value" msgstr "値" -#: assets/models/label.py:40 assets/serializers/asset/common.py:122 +#: assets/models/label.py:40 assets/serializers/asset/common.py:129 #: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13 #: authentication/serializers/connect_token_secret.py:114 #: common/serializers/common.py:79 settings/serializers/sms.py:7 @@ -1396,7 +1396,7 @@ msgstr "フルバリュー" msgid "Parent key" msgstr "親キー" -#: assets/models/node.py:558 perms/serializers/permission.py:30 +#: assets/models/node.py:558 perms/serializers/permission.py:36 #: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:96 msgid "Node" msgstr "ノード" @@ -1498,35 +1498,36 @@ msgstr "オートメーション" msgid "%(value)s is not an even number" msgstr "%(value)s は偶数ではありません" -#: assets/serializers/asset/common.py:112 +#: assets/serializers/asset/common.py:119 msgid "Auto fill" msgstr "自動充填" -#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:96 +#: assets/serializers/asset/common.py:130 assets/serializers/platform.py:96 #: authentication/serializers/connect_token_secret.py:28 #: authentication/serializers/connect_token_secret.py:66 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99 msgid "Protocols" msgstr "プロトコル" -#: assets/serializers/asset/common.py:142 -#: assets/serializers/asset/common.py:292 -msgid "Auto info" -msgstr "自動情報" - -#: assets/serializers/asset/common.py:145 +#: assets/serializers/asset/common.py:132 +#: assets/serializers/asset/common.py:153 msgid "Node path" msgstr "ノードパスです" -#: assets/serializers/asset/common.py:218 +#: assets/serializers/asset/common.py:150 +#: assets/serializers/asset/common.py:302 +msgid "Auto info" +msgstr "自動情報" + +#: assets/serializers/asset/common.py:226 msgid "Platform not exist" msgstr "プラットフォームが存在しません" -#: assets/serializers/asset/common.py:253 +#: assets/serializers/asset/common.py:261 msgid "port out of range (1-65535)" msgstr "ポート番号が範囲外です (1-65535)" -#: assets/serializers/asset/common.py:260 +#: assets/serializers/asset/common.py:268 msgid "Protocol is required: {}" msgstr "プロトコルが必要です: {}" @@ -2434,7 +2435,7 @@ msgstr "ユーザーなしまたは期限切れのユーザー" msgid "No asset or inactive asset" msgstr "アセットがないか、有効化されていないアセット" -#: authentication/models/connection_token.py:257 +#: authentication/models/connection_token.py:258 msgid "Super connection token" msgstr "スーパー接続トークン" @@ -2493,16 +2494,16 @@ msgid "Ticket info" msgstr "作業指示情報" #: authentication/serializers/connection_token.py:20 -#: perms/models/asset_permission.py:71 perms/serializers/permission.py:31 -#: perms/serializers/permission.py:64 +#: perms/models/asset_permission.py:71 perms/serializers/permission.py:37 +#: perms/serializers/permission.py:70 #: tickets/models/ticket/apply_application.py:28 #: tickets/models/ticket/apply_asset.py:18 msgid "Actions" msgstr "アクション" #: authentication/serializers/connection_token.py:41 -#: perms/serializers/permission.py:33 perms/serializers/permission.py:65 -#: users/serializers/user.py:93 users/serializers/user.py:164 +#: perms/serializers/permission.py:39 perms/serializers/permission.py:71 +#: users/serializers/user.py:93 users/serializers/user.py:165 msgid "Is expired" msgstr "期限切れです" @@ -2521,9 +2522,9 @@ msgstr "メール" msgid "The {} cannot be empty" msgstr "{} 空にしてはならない" -#: authentication/serializers/token.py:79 perms/serializers/permission.py:32 -#: perms/serializers/permission.py:66 users/serializers/user.py:94 -#: users/serializers/user.py:162 +#: authentication/serializers/token.py:79 perms/serializers/permission.py:38 +#: perms/serializers/permission.py:72 users/serializers/user.py:94 +#: users/serializers/user.py:163 msgid "Is valid" msgstr "有効です" @@ -2891,7 +2892,7 @@ msgstr "企業の微信からユーザーを取得できませんでした" msgid "Please login with a password and then bind the WeCom" msgstr "パスワードでログインしてからWeComをバインドしてください" -#: common/api/action.py:52 +#: common/api/action.py:51 msgid "Request file format may be wrong" msgstr "リクエストファイルの形式が間違っている可能性があります" @@ -2986,14 +2987,20 @@ msgstr "オブジェクト" msgid "Organization ID" msgstr "組織 ID" -#: common/drf/parsers/base.py:17 +#: common/drf/parsers/base.py:21 msgid "The file content overflowed (The maximum length `{}` bytes)" msgstr "ファイルの内容がオーバーフローしました (最大長 '{}' バイト)" -#: common/drf/parsers/base.py:159 +#: common/drf/parsers/base.py:189 msgid "Parse file error: {}" msgstr "解析ファイルエラー: {}" +#: common/drf/parsers/excel.py:14 +#, fuzzy +#| msgid "Invalid zip file" +msgid "Invalid excel file" +msgstr "zip ファイルが無効です" + #: common/exceptions.py:15 #, python-format msgid "%s object does not exist." @@ -3235,11 +3242,11 @@ msgstr "投稿サイトニュース" msgid "No account available" msgstr "利用可能なアカウントがありません" -#: ops/ansible/inventory.py:186 +#: ops/ansible/inventory.py:189 msgid "Ansible disabled" msgstr "Ansible 無効" -#: ops/ansible/inventory.py:202 +#: ops/ansible/inventory.py:205 msgid "Skip hosts below:" msgstr "次のホストをスキップします: " @@ -3255,7 +3262,11 @@ msgstr "タスクは存在しません" msgid "Task {} args or kwargs error" msgstr "タスク実行パラメータエラー" -#: ops/api/playbook.py:83 +#: ops/api/playbook.py:38 +msgid "Currently playbook is being used in a job" +msgstr "現在プレイブックは1つのジョブで使用されています" + +#: ops/api/playbook.py:92 msgid "Unsupported file content" msgstr "サポートされていないファイルの内容" @@ -6428,7 +6439,7 @@ msgstr "公開キー" msgid "Force enable" msgstr "強制有効" -#: users/models/user.py:729 users/serializers/user.py:163 +#: users/models/user.py:729 users/serializers/user.py:164 msgid "Is service account" msgstr "サービスアカウントです" @@ -6457,7 +6468,7 @@ msgid "Secret key" msgstr "秘密キー" #: users/models/user.py:758 users/serializers/profile.py:147 -#: users/serializers/user.py:160 +#: users/serializers/user.py:161 msgid "Is first login" msgstr "最初のログインです" @@ -6564,7 +6575,7 @@ msgstr "MFAフォース有効化" msgid "Login blocked" msgstr "ログインブロック" -#: users/serializers/user.py:95 users/serializers/user.py:168 +#: users/serializers/user.py:95 users/serializers/user.py:169 msgid "Is OTP bound" msgstr "仮想MFAがバインドされているか" @@ -6572,19 +6583,25 @@ msgstr "仮想MFAがバインドされているか" msgid "Can public key authentication" msgstr "公開鍵認証が可能" -#: users/serializers/user.py:165 +#: users/serializers/user.py:166 msgid "Avatar url" msgstr "アバターURL" -#: users/serializers/user.py:275 +#: users/serializers/user.py:171 +#, fuzzy +#| msgid "One level" +msgid "MFA level" +msgstr "1つのレベル" + +#: users/serializers/user.py:277 msgid "Select users" msgstr "ユーザーの選択" -#: users/serializers/user.py:276 +#: users/serializers/user.py:278 msgid "For security, only list several users" msgstr "セキュリティのために、複数のユーザーのみをリストします" -#: users/serializers/user.py:309 +#: users/serializers/user.py:311 msgid "name not unique" msgstr "名前が一意ではない" diff --git a/apps/locale/zh/LC_MESSAGES/django.mo b/apps/locale/zh/LC_MESSAGES/django.mo index 11c2ca99d..360ae7c4b 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:a29193d2982b254444285cfb2d61f7ef7355ae2bab181cdf366446e879ab32fb -size 111963 +oid sha256:9819889a6d8b2934b06c5b242e3f63f404997f30851919247a405f542e8a03bc +size 113244 diff --git a/apps/locale/zh/LC_MESSAGES/django.po b/apps/locale/zh/LC_MESSAGES/django.po index 7e35e43f0..ba0a34c84 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-03-10 15:11+0800\n" +"POT-Creation-Date: 2023-03-14 17:34+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n" "Last-Translator: ibuler \n" "Language-Team: JumpServer team\n" @@ -168,7 +168,7 @@ msgstr "仅创建" #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 #: assets/serializers/label.py:27 audits/models.py:48 #: authentication/models/connection_token.py:33 -#: perms/models/asset_permission.py:64 perms/serializers/permission.py:29 +#: perms/models/asset_permission.py:64 perms/serializers/permission.py:35 #: terminal/backends/command/models.py:20 terminal/models/session/session.py:32 #: terminal/notifications.py:95 terminal/serializers/command.py:17 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212 @@ -194,9 +194,9 @@ msgstr "来源" #: 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:124 assets/serializers/gateway.py:28 +#: assets/serializers/asset/common.py:131 assets/serializers/gateway.py:28 #: audits/models.py:49 ops/models/base.py:18 -#: perms/models/asset_permission.py:70 perms/serializers/permission.py:34 +#: perms/models/asset_permission.py:70 perms/serializers/permission.py:40 #: terminal/backends/command/models.py:21 terminal/models/session/session.py:34 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85 msgid "Account" @@ -445,7 +445,7 @@ msgstr "账号验证" #: assets/models/cmd_filter.py:21 assets/models/domain.py:18 #: assets/models/group.py:20 assets/models/label.py:18 #: assets/models/platform.py:21 assets/models/platform.py:76 -#: assets/serializers/asset/common.py:67 assets/serializers/asset/common.py:143 +#: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151 #: assets/serializers/platform.py:133 #: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21 #: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57 @@ -469,7 +469,7 @@ msgstr "特权账号" #: assets/models/automations/base.py:21 assets/models/cmd_filter.py:39 #: assets/models/label.py:22 #: authentication/serializers/connect_token_secret.py:107 -#: terminal/models/applet/applet.py:32 users/serializers/user.py:161 +#: terminal/models/applet/applet.py:32 users/serializers/user.py:162 msgid "Is active" msgstr "激活" @@ -512,23 +512,23 @@ msgstr "" "密密码" #: accounts/serializers/account/account.py:65 -#: assets/serializers/asset/common.py:65 settings/serializers/auth/sms.py:75 +#: assets/serializers/asset/common.py:72 settings/serializers/auth/sms.py:75 msgid "Template" msgstr "模板" #: accounts/serializers/account/account.py:68 -#: assets/serializers/asset/common.py:62 +#: assets/serializers/asset/common.py:69 msgid "Push now" msgstr "立即推送" #: accounts/serializers/account/account.py:70 -#: accounts/serializers/account/base.py:62 +#: accounts/serializers/account/base.py:64 msgid "Has secret" msgstr "已托管密码" #: accounts/serializers/account/account.py:75 applications/models.py:11 #: assets/models/label.py:21 assets/models/platform.py:77 -#: assets/serializers/asset/common.py:120 assets/serializers/cagegory.py:8 +#: assets/serializers/asset/common.py:127 assets/serializers/cagegory.py:8 #: assets/serializers/platform.py:94 assets/serializers/platform.py:134 #: perms/serializers/user_permission.py:26 settings/models.py:35 #: tickets/models/ticket/apply_application.py:13 @@ -540,7 +540,7 @@ msgstr "类别" #: 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 -#: assets/serializers/asset/common.py:121 assets/serializers/platform.py:93 +#: assets/serializers/asset/common.py:128 assets/serializers/platform.py:93 #: audits/serializers.py:48 #: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31 @@ -587,8 +587,8 @@ msgstr "密钥/密码" msgid "Key password" msgstr "密钥密码" -#: accounts/serializers/account/base.py:79 -#: assets/serializers/asset/common.py:291 +#: accounts/serializers/account/base.py:81 +#: assets/serializers/asset/common.py:301 msgid "Spec info" msgstr "特殊信息" @@ -737,7 +737,7 @@ msgstr "激活中" #: authentication/models/sso_token.py:16 #: notifications/models/notification.py:12 #: perms/api/user_permission/mixin.py:55 perms/models/asset_permission.py:58 -#: perms/serializers/permission.py:25 rbac/builtin.py:122 +#: perms/serializers/permission.py:31 rbac/builtin.py:122 #: rbac/models/rolebinding.py:49 terminal/backends/command/models.py:19 #: terminal/models/session/session.py:30 terminal/models/session/sharing.py:32 #: terminal/notifications.py:96 terminal/notifications.py:144 @@ -988,7 +988,7 @@ msgid "Device" msgstr "网络设备" #: assets/const/category.py:13 assets/models/asset/database.py:9 -#: assets/models/asset/database.py:24 assets/serializers/asset/common.py:108 +#: assets/models/asset/database.py:24 assets/serializers/asset/common.py:115 msgid "Database" msgstr "数据库" @@ -1052,7 +1052,7 @@ msgid "Basic" msgstr "基本" #: assets/const/web.py:61 assets/models/asset/web.py:13 -#: assets/serializers/asset/common.py:116 assets/serializers/platform.py:40 +#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:40 msgid "Script" msgstr "脚本" @@ -1181,7 +1181,7 @@ msgstr "云服务" msgid "Port" msgstr "端口" -#: assets/models/asset/common.py:103 assets/serializers/asset/common.py:144 +#: assets/models/asset/common.py:103 assets/serializers/asset/common.py:152 msgid "Address" msgstr "地址" @@ -1218,7 +1218,7 @@ msgstr "可以匹配资产" msgid "Can change asset nodes" msgstr "可以修改资产节点" -#: assets/models/asset/database.py:10 assets/serializers/asset/common.py:109 +#: assets/models/asset/database.py:10 assets/serializers/asset/common.py:116 #: settings/serializers/email.py:37 msgid "Use SSL" msgstr "使用 SSL" @@ -1235,7 +1235,7 @@ msgstr "客户端证书" msgid "Client key" msgstr "客户端密钥" -#: assets/models/asset/database.py:14 assets/serializers/asset/common.py:110 +#: assets/models/asset/database.py:14 assets/serializers/asset/common.py:117 msgid "Allow invalid cert" msgstr "忽略证书校验" @@ -1243,23 +1243,23 @@ msgstr "忽略证书校验" msgid "Autofill" msgstr "自动代填" -#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:113 +#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120 #: assets/serializers/platform.py:32 msgid "Username selector" msgstr "用户名选择器" -#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:114 +#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121 #: assets/serializers/platform.py:35 msgid "Password selector" msgstr "密码选择器" -#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:115 +#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122 #: assets/serializers/platform.py:38 msgid "Submit selector" msgstr "确认按钮选择器" #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 -#: assets/serializers/asset/common.py:290 rbac/tree.py:35 +#: assets/serializers/asset/common.py:300 rbac/tree.py:35 msgid "Accounts" msgstr "账号管理" @@ -1299,7 +1299,7 @@ msgid "Date verified" msgstr "校验日期" #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61 -#: perms/serializers/permission.py:27 users/models/group.py:25 +#: perms/serializers/permission.py:33 users/models/group.py:25 #: users/models/user.py:723 msgid "User group" msgstr "用户组" @@ -1361,7 +1361,7 @@ msgstr "系统" msgid "Value" msgstr "值" -#: assets/models/label.py:40 assets/serializers/asset/common.py:122 +#: assets/models/label.py:40 assets/serializers/asset/common.py:129 #: assets/serializers/cagegory.py:6 assets/serializers/cagegory.py:13 #: authentication/serializers/connect_token_secret.py:114 #: common/serializers/common.py:79 settings/serializers/sms.py:7 @@ -1388,7 +1388,7 @@ msgstr "全称" msgid "Parent key" msgstr "ssh私钥" -#: assets/models/node.py:558 perms/serializers/permission.py:30 +#: assets/models/node.py:558 perms/serializers/permission.py:36 #: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:96 msgid "Node" msgstr "节点" @@ -1490,35 +1490,36 @@ msgstr "自动化" msgid "%(value)s is not an even number" msgstr "%(value)s is not an even number" -#: assets/serializers/asset/common.py:112 +#: assets/serializers/asset/common.py:119 msgid "Auto fill" msgstr "自动代填" -#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:96 +#: assets/serializers/asset/common.py:130 assets/serializers/platform.py:96 #: authentication/serializers/connect_token_secret.py:28 #: authentication/serializers/connect_token_secret.py:66 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99 msgid "Protocols" msgstr "协议组" -#: assets/serializers/asset/common.py:142 -#: assets/serializers/asset/common.py:292 -msgid "Auto info" -msgstr "自动化信息" - -#: assets/serializers/asset/common.py:145 +#: assets/serializers/asset/common.py:132 +#: assets/serializers/asset/common.py:153 msgid "Node path" msgstr "节点路径" -#: assets/serializers/asset/common.py:218 +#: assets/serializers/asset/common.py:150 +#: assets/serializers/asset/common.py:302 +msgid "Auto info" +msgstr "自动化信息" + +#: assets/serializers/asset/common.py:226 msgid "Platform not exist" msgstr "平台不存在" -#: assets/serializers/asset/common.py:253 +#: assets/serializers/asset/common.py:261 msgid "port out of range (1-65535)" msgstr "端口超出范围 (1-65535)" -#: assets/serializers/asset/common.py:260 +#: assets/serializers/asset/common.py:268 msgid "Protocol is required: {}" msgstr "协议是必填的: {}" @@ -2412,7 +2413,7 @@ msgstr "没有用户或用户失效" msgid "No asset or inactive asset" msgstr "没有资产或资产未激活" -#: authentication/models/connection_token.py:257 +#: authentication/models/connection_token.py:258 msgid "Super connection token" msgstr "超级连接令牌" @@ -2471,16 +2472,16 @@ msgid "Ticket info" msgstr "工单信息" #: authentication/serializers/connection_token.py:20 -#: perms/models/asset_permission.py:71 perms/serializers/permission.py:31 -#: perms/serializers/permission.py:64 +#: perms/models/asset_permission.py:71 perms/serializers/permission.py:37 +#: perms/serializers/permission.py:70 #: tickets/models/ticket/apply_application.py:28 #: tickets/models/ticket/apply_asset.py:18 msgid "Actions" msgstr "动作" #: authentication/serializers/connection_token.py:41 -#: perms/serializers/permission.py:33 perms/serializers/permission.py:65 -#: users/serializers/user.py:93 users/serializers/user.py:164 +#: perms/serializers/permission.py:39 perms/serializers/permission.py:71 +#: users/serializers/user.py:93 users/serializers/user.py:165 msgid "Is expired" msgstr "已过期" @@ -2499,9 +2500,9 @@ msgstr "邮箱" msgid "The {} cannot be empty" msgstr "{} 不能为空" -#: authentication/serializers/token.py:79 perms/serializers/permission.py:32 -#: perms/serializers/permission.py:66 users/serializers/user.py:94 -#: users/serializers/user.py:162 +#: authentication/serializers/token.py:79 perms/serializers/permission.py:38 +#: perms/serializers/permission.py:72 users/serializers/user.py:94 +#: users/serializers/user.py:163 msgid "Is valid" msgstr "是否有效" @@ -2861,7 +2862,7 @@ msgstr "从企业微信获取用户失败" msgid "Please login with a password and then bind the WeCom" msgstr "请使用密码登录,然后绑定企业微信" -#: common/api/action.py:52 +#: common/api/action.py:51 msgid "Request file format may be wrong" msgstr "上传的文件格式错误 或 其它类型资源的文件" @@ -2956,14 +2957,20 @@ msgstr "对象" msgid "Organization ID" msgstr "组织 ID" -#: common/drf/parsers/base.py:17 +#: common/drf/parsers/base.py:21 msgid "The file content overflowed (The maximum length `{}` bytes)" msgstr "文件内容太大 (最大长度 `{}` 字节)" -#: common/drf/parsers/base.py:159 +#: common/drf/parsers/base.py:189 msgid "Parse file error: {}" msgstr "解析文件错误: {}" +#: common/drf/parsers/excel.py:14 +#, fuzzy +#| msgid "Invalid zip file" +msgid "Invalid excel file" +msgstr "无效的 zip 文件" + #: common/exceptions.py:15 #, python-format msgid "%s object does not exist." @@ -3200,11 +3207,11 @@ msgstr "发布站内消息" msgid "No account available" msgstr "无可用账号" -#: ops/ansible/inventory.py:186 +#: ops/ansible/inventory.py:189 msgid "Ansible disabled" msgstr "Ansible 已禁用" -#: ops/ansible/inventory.py:202 +#: ops/ansible/inventory.py:205 msgid "Skip hosts below:" msgstr "跳过以下主机: " @@ -3220,7 +3227,11 @@ msgstr "任务 {} 不存在" msgid "Task {} args or kwargs error" msgstr "任务 {} 执行参数错误" -#: ops/api/playbook.py:83 +#: ops/api/playbook.py:38 +msgid "Currently playbook is being used in a job" +msgstr "当前 playbook 正在作业中使用" + +#: ops/api/playbook.py:92 msgid "Unsupported file content" msgstr "不支持的文件内容" @@ -6344,7 +6355,7 @@ msgstr "SSH公钥" msgid "Force enable" msgstr "强制启用" -#: users/models/user.py:729 users/serializers/user.py:163 +#: users/models/user.py:729 users/serializers/user.py:164 msgid "Is service account" msgstr "服务账号" @@ -6373,7 +6384,7 @@ msgid "Secret key" msgstr "Secret key" #: users/models/user.py:758 users/serializers/profile.py:147 -#: users/serializers/user.py:160 +#: users/serializers/user.py:161 msgid "Is first login" msgstr "首次登录" @@ -6480,7 +6491,7 @@ msgstr "强制 MFA" msgid "Login blocked" msgstr "登录被阻塞" -#: users/serializers/user.py:95 users/serializers/user.py:168 +#: users/serializers/user.py:95 users/serializers/user.py:169 msgid "Is OTP bound" msgstr "是否绑定了虚拟 MFA" @@ -6488,19 +6499,25 @@ msgstr "是否绑定了虚拟 MFA" msgid "Can public key authentication" msgstr "可以使用公钥认证" -#: users/serializers/user.py:165 +#: users/serializers/user.py:166 msgid "Avatar url" msgstr "头像路径" -#: users/serializers/user.py:275 +#: users/serializers/user.py:171 +#, fuzzy +#| msgid "One level" +msgid "MFA level" +msgstr "1 级" + +#: users/serializers/user.py:277 msgid "Select users" msgstr "选择用户" -#: users/serializers/user.py:276 +#: users/serializers/user.py:278 msgid "For security, only list several users" msgstr "为了安全,仅列出几个用户" -#: users/serializers/user.py:309 +#: users/serializers/user.py:311 msgid "name not unique" msgstr "名称重复" diff --git a/apps/ops/api/playbook.py b/apps/ops/api/playbook.py index 7e5a1fc25..d848e029c 100644 --- a/apps/ops/api/playbook.py +++ b/apps/ops/api/playbook.py @@ -32,6 +32,15 @@ class PlaybookViewSet(OrgBulkModelViewSet): model = Playbook search_fields = ('name', 'comment') + def perform_destroy(self, instance): + instance = self.get_object() + if instance.job_set.exists(): + raise JMSException(code='playbook_has_job', detail={"msg": _("Currently playbook is being used in a job")}) + instance_id = instance.id + super().perform_destroy(instance) + dest_path = os.path.join(settings.DATA_DIR, "ops", "playbook", instance_id.__str__()) + shutil.rmtree(dest_path) + def get_queryset(self): queryset = super().get_queryset() queryset = queryset.filter(creator=self.request.user)