perf: 优化 playbook 删除策略,正在被 job 使用时无法被删除

pull/9954/head
Aaron3S 2023-03-14 17:37:02 +08:00 committed by Jiangjie.Bai
parent 2ce293bd81
commit df249a0355
5 changed files with 163 additions and 120 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8c2600b7094db2a9e64862169ff1c826d5064fae9b9e71744545a1cea88cbc65
size 136280
oid sha256:6fa80b59b9b5f95a9cfcad8ec47eacd519bb962d139ab90463795a7b306a0a72
size 137935

View File

@ -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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 "名前が一意ではない"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a29193d2982b254444285cfb2d61f7ef7355ae2bab181cdf366446e879ab32fb
size 111963
oid sha256:9819889a6d8b2934b06c5b242e3f63f404997f30851919247a405f542e8a03bc
size 113244

View File

@ -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 <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\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 "名称重复"

View File

@ -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)