feat: Cloud 支持局域网 IP 扫描 (#8589)

* feat: Cloud 支持局域网 IP 扫描

* feat: Cloud 支持局域网 IP 扫描

Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
pull/8705/head
fit2bot 2022-08-05 14:45:25 +08:00 committed by GitHub
parent 70cf847cd9
commit b27b02eb9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 159 additions and 95 deletions

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
import re import re
import socket
from django.templatetags.static import static from django.templatetags.static import static
from collections import OrderedDict from collections import OrderedDict
from itertools import chain from itertools import chain
@ -368,8 +369,23 @@ def group_by_count(it, count):
return [it[i:i+count] for i in range(0, len(it), count)] return [it[i:i+count] for i in range(0, len(it), count)]
def test_ip_connectivity(host, port, timeout=3):
"""
timeout: seconds
"""
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(timeout)
result = sock.connect_ex((host, int(port)))
sock.close()
if result == 0:
connectivity = True
else:
connectivity = False
return connectivity
def static_or_direct(logo_path): def static_or_direct(logo_path):
if logo_path.startswith('img/'): if logo_path.startswith('img/'):
return static(logo_path) return static(logo_path)
else: else:
return logo_path return logo_path

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:73ea6289c22c329752330fae1fef6d174573c7f46355137ffbc864407b2b8270 oid sha256:62879a50d21ad41c43bf748f6045bf30a933d5d08021d97dc1c68e23f6bf8e65
size 129073 size 130015

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-04 14:17+0800\n" "POT-Creation-Date: 2022-08-05 14:42+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -164,7 +164,7 @@ msgstr "コンマ区切り文字列の形式。* はすべて一致すること
#: users/templates/users/_msg_user_created.html:12 #: users/templates/users/_msg_user_created.html:12
#: xpack/plugins/change_auth_plan/models/asset.py:34 #: xpack/plugins/change_auth_plan/models/asset.py:34
#: xpack/plugins/change_auth_plan/models/asset.py:195 #: xpack/plugins/change_auth_plan/models/asset.py:195
#: xpack/plugins/cloud/serializers/account_attrs.py:24 #: xpack/plugins/cloud/serializers/account_attrs.py:26
msgid "Username" msgid "Username"
msgstr "ユーザー名" msgstr "ユーザー名"
@ -329,7 +329,7 @@ msgid "Domain"
msgstr "ドメイン" msgstr "ドメイン"
#: applications/models/application.py:231 xpack/plugins/cloud/models.py:33 #: applications/models/application.py:231 xpack/plugins/cloud/models.py:33
#: xpack/plugins/cloud/serializers/account.py:60 #: xpack/plugins/cloud/serializers/account.py:61
msgid "Attrs" msgid "Attrs"
msgstr "ツールバーの" msgstr "ツールバーの"
@ -394,7 +394,7 @@ msgstr "クラスター"
#: applications/serializers/attrs/application_category/db.py:11 #: applications/serializers/attrs/application_category/db.py:11
#: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14 #: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14
#: terminal/models/endpoint.py:11 #: terminal/models/endpoint.py:11
#: xpack/plugins/cloud/serializers/account_attrs.py:70 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "ホスト" msgstr "ホスト"
@ -408,7 +408,7 @@ msgstr "ホスト"
#: applications/serializers/attrs/application_type/sqlserver.py:10 #: applications/serializers/attrs/application_type/sqlserver.py:10
#: assets/models/asset.py:214 assets/models/domain.py:62 #: assets/models/asset.py:214 assets/models/domain.py:62
#: settings/serializers/auth/radius.py:15 #: settings/serializers/auth/radius.py:15
#: xpack/plugins/cloud/serializers/account_attrs.py:71 #: xpack/plugins/cloud/serializers/account_attrs.py:73
msgid "Port" msgid "Port"
msgstr "ポート" msgstr "ポート"
@ -431,7 +431,7 @@ msgstr "アプリケーションパス"
#: xpack/plugins/change_auth_plan/serializers/asset.py:70 #: xpack/plugins/change_auth_plan/serializers/asset.py:70
#: xpack/plugins/change_auth_plan/serializers/asset.py:73 #: xpack/plugins/change_auth_plan/serializers/asset.py:73
#: xpack/plugins/change_auth_plan/serializers/asset.py:104 #: xpack/plugins/change_auth_plan/serializers/asset.py:104
#: xpack/plugins/cloud/serializers/account_attrs.py:54 #: xpack/plugins/cloud/serializers/account_attrs.py:56
msgid "This field is required." msgid "This field is required."
msgstr "このフィールドは必須です。" msgstr "このフィールドは必須です。"
@ -529,6 +529,7 @@ msgstr "内部"
#: assets/models/asset.py:162 assets/models/asset.py:216 #: assets/models/asset.py:162 assets/models/asset.py:216
#: assets/serializers/account.py:15 assets/serializers/asset.py:63 #: assets/serializers/account.py:15 assets/serializers/asset.py:63
#: perms/serializers/asset/user_permission.py:43 #: perms/serializers/asset/user_permission.py:43
#: xpack/plugins/cloud/serializers/account_attrs.py:159
msgid "Platform" msgid "Platform"
msgstr "プラットフォーム" msgstr "プラットフォーム"
@ -773,7 +774,7 @@ msgstr "OK"
#: assets/models/base.py:32 audits/models.py:118 #: assets/models/base.py:32 audits/models.py:118
#: xpack/plugins/change_auth_plan/serializers/app.py:88 #: xpack/plugins/change_auth_plan/serializers/app.py:88
#: xpack/plugins/change_auth_plan/serializers/asset.py:199 #: xpack/plugins/change_auth_plan/serializers/asset.py:199
#: xpack/plugins/cloud/const.py:32 #: xpack/plugins/cloud/const.py:33
msgid "Failed" msgid "Failed"
msgstr "失敗しました" msgstr "失敗しました"
@ -799,7 +800,7 @@ msgstr "確認済みの日付"
#: xpack/plugins/change_auth_plan/models/base.py:196 #: xpack/plugins/change_auth_plan/models/base.py:196
#: xpack/plugins/change_auth_plan/serializers/base.py:21 #: xpack/plugins/change_auth_plan/serializers/base.py:21
#: xpack/plugins/change_auth_plan/serializers/base.py:73 #: xpack/plugins/change_auth_plan/serializers/base.py:73
#: xpack/plugins/cloud/serializers/account_attrs.py:26 #: xpack/plugins/cloud/serializers/account_attrs.py:28
msgid "Password" msgid "Password"
msgstr "パスワード" msgstr "パスワード"
@ -2414,8 +2415,8 @@ msgstr ""
"おかえりなさい、ログインするためにユーザー名とパスワードを入力してください" "おかえりなさい、ログインするためにユーザー名とパスワードを入力してください"
#: authentication/templates/authentication/login.html:256 #: authentication/templates/authentication/login.html:256
#: users/templates/users/forgot_password.html:15
#: users/templates/users/forgot_password.html:16 #: users/templates/users/forgot_password.html:16
#: users/templates/users/forgot_password.html:17
msgid "Forgot password" msgid "Forgot password"
msgstr "パスワードを忘れた" msgstr "パスワードを忘れた"
@ -2742,9 +2743,9 @@ msgstr "確認コードが正しくありません"
msgid "Please wait {} seconds before sending" msgid "Please wait {} seconds before sending"
msgstr "{} 秒待ってから送信してください" msgstr "{} 秒待ってから送信してください"
#: common/utils/ip/geoip/utils.py:24 #: common/utils/ip/geoip/utils.py:24 xpack/plugins/cloud/const.py:24
msgid "LAN" msgid "LAN"
msgstr "LAN" msgstr "ローカルエリアネットワーク"
#: common/utils/ip/geoip/utils.py:26 common/utils/ip/utils.py:78 #: common/utils/ip/geoip/utils.py:26 common/utils/ip/utils.py:78
msgid "Invalid ip" msgid "Invalid ip"
@ -3691,7 +3692,7 @@ msgid "Client Id"
msgstr "クライアントID" msgstr "クライアントID"
#: settings/serializers/auth/oauth2.py:32 settings/serializers/auth/oidc.py:21 #: settings/serializers/auth/oauth2.py:32 settings/serializers/auth/oidc.py:21
#: xpack/plugins/cloud/serializers/account_attrs.py:36 #: xpack/plugins/cloud/serializers/account_attrs.py:38
msgid "Client Secret" msgid "Client Secret"
msgstr "クライアント秘密" msgstr "クライアント秘密"
@ -5155,12 +5156,12 @@ msgid "Bucket"
msgstr "バケット" msgstr "バケット"
#: terminal/serializers/storage.py:30 #: terminal/serializers/storage.py:30
#: xpack/plugins/cloud/serializers/account_attrs.py:15 #: xpack/plugins/cloud/serializers/account_attrs.py:17
msgid "Access key id" msgid "Access key id"
msgstr "アクセスキー" msgstr "アクセスキー"
#: terminal/serializers/storage.py:34 #: terminal/serializers/storage.py:34
#: xpack/plugins/cloud/serializers/account_attrs.py:18 #: xpack/plugins/cloud/serializers/account_attrs.py:20
msgid "Access key secret" msgid "Access key secret"
msgstr "アクセスキーシークレット" msgstr "アクセスキーシークレット"
@ -5968,11 +5969,11 @@ msgstr "あなたのssh公開鍵はサイト管理者によってリセットさ
msgid "click here to set your password" msgid "click here to set your password"
msgstr "ここをクリックしてパスワードを設定してください" msgstr "ここをクリックしてパスワードを設定してください"
#: users/templates/users/forgot_password.html:23 #: users/templates/users/forgot_password.html:24
msgid "Input your email, that will send a mail to your" msgid "Input your email, that will send a mail to your"
msgstr "あなたのメールを入力し、それはあなたにメールを送信します" msgstr "あなたのメールを入力し、それはあなたにメールを送信します"
#: users/templates/users/forgot_password.html:32 #: users/templates/users/forgot_password.html:33
msgid "Submit" msgid "Submit"
msgstr "送信" msgstr "送信"
@ -6415,31 +6416,31 @@ msgstr "谷歌雲"
msgid "Fusion Compute" msgid "Fusion Compute"
msgstr "" msgstr ""
#: xpack/plugins/cloud/const.py:27 #: xpack/plugins/cloud/const.py:28
msgid "Instance name" msgid "Instance name"
msgstr "インスタンス名" msgstr "インスタンス名"
#: xpack/plugins/cloud/const.py:28 #: xpack/plugins/cloud/const.py:29
msgid "Instance name and Partial IP" msgid "Instance name and Partial IP"
msgstr "インスタンス名と部分IP" msgstr "インスタンス名と部分IP"
#: xpack/plugins/cloud/const.py:33 #: xpack/plugins/cloud/const.py:34
msgid "Succeed" msgid "Succeed"
msgstr "成功" msgstr "成功"
#: xpack/plugins/cloud/const.py:37 #: xpack/plugins/cloud/const.py:38
msgid "Unsync" msgid "Unsync"
msgstr "同期していません" msgstr "同期していません"
#: xpack/plugins/cloud/const.py:38 #: xpack/plugins/cloud/const.py:39
msgid "New Sync" msgid "New Sync"
msgstr "新しい同期" msgstr "新しい同期"
#: xpack/plugins/cloud/const.py:39 #: xpack/plugins/cloud/const.py:40
msgid "Synced" msgid "Synced"
msgstr "同期済み" msgstr "同期済み"
#: xpack/plugins/cloud/const.py:40 #: xpack/plugins/cloud/const.py:41
msgid "Released" msgid "Released"
msgstr "リリース済み" msgstr "リリース済み"
@ -6709,52 +6710,84 @@ msgstr "華南-広州-友好ユーザー環境"
msgid "CN East-Suqian" msgid "CN East-Suqian"
msgstr "華東-宿遷" msgstr "華東-宿遷"
#: xpack/plugins/cloud/serializers/account.py:61 #: xpack/plugins/cloud/serializers/account.py:62
msgid "Validity display" msgid "Validity display"
msgstr "有効表示" msgstr "有効表示"
#: xpack/plugins/cloud/serializers/account.py:62 #: xpack/plugins/cloud/serializers/account.py:63
msgid "Provider display" msgid "Provider display"
msgstr "プロバイダ表示" msgstr "プロバイダ表示"
#: xpack/plugins/cloud/serializers/account_attrs.py:33 #: xpack/plugins/cloud/serializers/account_attrs.py:35
msgid "Client ID" msgid "Client ID"
msgstr "クライアントID" msgstr "クライアントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:39 #: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID" msgid "Tenant ID"
msgstr "テナントID" msgstr "テナントID"
#: xpack/plugins/cloud/serializers/account_attrs.py:42 #: xpack/plugins/cloud/serializers/account_attrs.py:44
msgid "Subscription ID" msgid "Subscription ID"
msgstr "サブスクリプションID" msgstr "サブスクリプションID"
#: xpack/plugins/cloud/serializers/account_attrs.py:93 #: xpack/plugins/cloud/serializers/account_attrs.py:95
#: xpack/plugins/cloud/serializers/account_attrs.py:98 #: xpack/plugins/cloud/serializers/account_attrs.py:100
#: xpack/plugins/cloud/serializers/account_attrs.py:122 #: xpack/plugins/cloud/serializers/account_attrs.py:124
msgid "API Endpoint" msgid "API Endpoint"
msgstr "APIエンドポイント" msgstr "APIエンドポイント"
#: xpack/plugins/cloud/serializers/account_attrs.py:104 #: xpack/plugins/cloud/serializers/account_attrs.py:106
msgid "Auth url" msgid "Auth url"
msgstr "認証アドレス" msgstr "認証アドレス"
#: xpack/plugins/cloud/serializers/account_attrs.py:105 #: xpack/plugins/cloud/serializers/account_attrs.py:107
msgid "eg: http://openstack.example.com:5000/v3" msgid "eg: http://openstack.example.com:5000/v3"
msgstr "例えば: http://openstack.example.com:5000/v3" msgstr "例えば: http://openstack.example.com:5000/v3"
#: xpack/plugins/cloud/serializers/account_attrs.py:108 #: xpack/plugins/cloud/serializers/account_attrs.py:110
msgid "User domain" msgid "User domain"
msgstr "ユーザードメイン" msgstr "ユーザードメイン"
#: xpack/plugins/cloud/serializers/account_attrs.py:115 #: xpack/plugins/cloud/serializers/account_attrs.py:117
msgid "Service account key" msgid "Service account key"
msgstr "サービスアカウントキー" msgstr "サービスアカウントキー"
#: xpack/plugins/cloud/serializers/account_attrs.py:116 #: xpack/plugins/cloud/serializers/account_attrs.py:118
msgid "The file is in JSON format" msgid "The file is in JSON format"
msgstr "ファイルはJSON形式です。" msgstr "ファイルはJSON形式です。"
#: xpack/plugins/cloud/serializers/account_attrs.py:131
msgid "IP address invalid `{}`, {}"
msgstr "IPアドレスが無効: '{}', {}"
#: xpack/plugins/cloud/serializers/account_attrs.py:137
msgid ""
"Format for comma-delimited string,Such as: 192.168.1.0/24, "
"10.0.0.0-10.0.0.255"
msgstr "形式はコンマ区切りの文字列です192.168.1.0/24,10.0.0.0-10.0.0.255"
#: xpack/plugins/cloud/serializers/account_attrs.py:141
msgid ""
"The port is used to detect the validity of the IP address. When the "
"synchronization task is executed, only the valid IP address will be "
"synchronized. <br>If the port is 0, all IP addresses are valid."
msgstr ""
"このポートは、 IP アドレスの有効性を検出するために使用されます。同期タスクが"
"実行されると、有効な IP アドレスのみが同期されます。 <br>ポートが0の場合、す"
"べてのIPアドレスが有効です。"
#: xpack/plugins/cloud/serializers/account_attrs.py:149
msgid "Hostname prefix"
msgstr "ホスト名プレフィックス"
#: xpack/plugins/cloud/serializers/account_attrs.py:152
msgid "IP segment"
msgstr "IP セグメント"
#: xpack/plugins/cloud/serializers/account_attrs.py:156
msgid "Test port"
msgstr "テストポート"
#: xpack/plugins/cloud/serializers/task.py:29 #: xpack/plugins/cloud/serializers/task.py:29
msgid "" msgid ""
"Only instances matching the IP range will be synced. <br>If the instance " "Only instances matching the IP range will be synced. <br>If the instance "
@ -6873,12 +6906,3 @@ msgstr "究極のエディション"
#: xpack/plugins/license/models.py:77 #: xpack/plugins/license/models.py:77
msgid "Community edition" msgid "Community edition"
msgstr "コミュニティ版" msgstr "コミュニティ版"
#~ msgid "Logo title"
#~ msgstr "アイコンタイトル"
#~ msgid "IP is not allowed"
#~ msgstr "IPは許可されていません"
#~ msgid "User cannot self-update fields: {}"
#~ msgstr "ユーザーは自分のフィールドを更新できません: {}"

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:4e8c2c0a8a9b7d9de0bd11c1fba8073bbe44fe7274ff6bb3537d5fa19b083baa oid sha256:adb46a0b7afdddc1b8a399e0fc0a0926012308ddce0ff487b68cb6c209d74039
size 106370 size 107133

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: JumpServer 0.3.3\n" "Project-Id-Version: JumpServer 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-04 14:17+0800\n" "POT-Creation-Date: 2022-08-05 14:42+0800\n"
"PO-Revision-Date: 2021-05-20 10:54+0800\n" "PO-Revision-Date: 2021-05-20 10:54+0800\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: JumpServer team<ibuler@qq.com>\n" "Language-Team: JumpServer team<ibuler@qq.com>\n"
@ -163,7 +163,7 @@ msgstr "格式为逗号分隔的字符串, * 表示匹配所有. "
#: users/templates/users/_msg_user_created.html:12 #: users/templates/users/_msg_user_created.html:12
#: xpack/plugins/change_auth_plan/models/asset.py:34 #: xpack/plugins/change_auth_plan/models/asset.py:34
#: xpack/plugins/change_auth_plan/models/asset.py:195 #: xpack/plugins/change_auth_plan/models/asset.py:195
#: xpack/plugins/cloud/serializers/account_attrs.py:24 #: xpack/plugins/cloud/serializers/account_attrs.py:26
msgid "Username" msgid "Username"
msgstr "用户名" msgstr "用户名"
@ -324,7 +324,7 @@ msgid "Domain"
msgstr "网域" msgstr "网域"
#: applications/models/application.py:231 xpack/plugins/cloud/models.py:33 #: applications/models/application.py:231 xpack/plugins/cloud/models.py:33
#: xpack/plugins/cloud/serializers/account.py:60 #: xpack/plugins/cloud/serializers/account.py:61
msgid "Attrs" msgid "Attrs"
msgstr "属性" msgstr "属性"
@ -389,7 +389,7 @@ msgstr "集群"
#: applications/serializers/attrs/application_category/db.py:11 #: applications/serializers/attrs/application_category/db.py:11
#: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14 #: ops/models/adhoc.py:157 settings/serializers/auth/radius.py:14
#: terminal/models/endpoint.py:11 #: terminal/models/endpoint.py:11
#: xpack/plugins/cloud/serializers/account_attrs.py:70 #: xpack/plugins/cloud/serializers/account_attrs.py:72
msgid "Host" msgid "Host"
msgstr "主机" msgstr "主机"
@ -403,7 +403,7 @@ msgstr "主机"
#: applications/serializers/attrs/application_type/sqlserver.py:10 #: applications/serializers/attrs/application_type/sqlserver.py:10
#: assets/models/asset.py:214 assets/models/domain.py:62 #: assets/models/asset.py:214 assets/models/domain.py:62
#: settings/serializers/auth/radius.py:15 #: settings/serializers/auth/radius.py:15
#: xpack/plugins/cloud/serializers/account_attrs.py:71 #: xpack/plugins/cloud/serializers/account_attrs.py:73
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
@ -426,7 +426,7 @@ msgstr "应用路径"
#: xpack/plugins/change_auth_plan/serializers/asset.py:70 #: xpack/plugins/change_auth_plan/serializers/asset.py:70
#: xpack/plugins/change_auth_plan/serializers/asset.py:73 #: xpack/plugins/change_auth_plan/serializers/asset.py:73
#: xpack/plugins/change_auth_plan/serializers/asset.py:104 #: xpack/plugins/change_auth_plan/serializers/asset.py:104
#: xpack/plugins/cloud/serializers/account_attrs.py:54 #: xpack/plugins/cloud/serializers/account_attrs.py:56
msgid "This field is required." msgid "This field is required."
msgstr "该字段是必填项。" msgstr "该字段是必填项。"
@ -524,6 +524,7 @@ msgstr "内部的"
#: assets/models/asset.py:162 assets/models/asset.py:216 #: assets/models/asset.py:162 assets/models/asset.py:216
#: assets/serializers/account.py:15 assets/serializers/asset.py:63 #: assets/serializers/account.py:15 assets/serializers/asset.py:63
#: perms/serializers/asset/user_permission.py:43 #: perms/serializers/asset/user_permission.py:43
#: xpack/plugins/cloud/serializers/account_attrs.py:159
msgid "Platform" msgid "Platform"
msgstr "系统平台" msgstr "系统平台"
@ -768,7 +769,7 @@ msgstr "成功"
#: assets/models/base.py:32 audits/models.py:118 #: assets/models/base.py:32 audits/models.py:118
#: xpack/plugins/change_auth_plan/serializers/app.py:88 #: xpack/plugins/change_auth_plan/serializers/app.py:88
#: xpack/plugins/change_auth_plan/serializers/asset.py:199 #: xpack/plugins/change_auth_plan/serializers/asset.py:199
#: xpack/plugins/cloud/const.py:32 #: xpack/plugins/cloud/const.py:33
msgid "Failed" msgid "Failed"
msgstr "失败" msgstr "失败"
@ -794,7 +795,7 @@ msgstr "校验日期"
#: xpack/plugins/change_auth_plan/models/base.py:196 #: xpack/plugins/change_auth_plan/models/base.py:196
#: xpack/plugins/change_auth_plan/serializers/base.py:21 #: xpack/plugins/change_auth_plan/serializers/base.py:21
#: xpack/plugins/change_auth_plan/serializers/base.py:73 #: xpack/plugins/change_auth_plan/serializers/base.py:73
#: xpack/plugins/cloud/serializers/account_attrs.py:26 #: xpack/plugins/cloud/serializers/account_attrs.py:28
msgid "Password" msgid "Password"
msgstr "密码" msgstr "密码"
@ -2380,8 +2381,8 @@ msgid "Welcome back, please enter username and password to login"
msgstr "欢迎回来,请输入用户名和密码登录" msgstr "欢迎回来,请输入用户名和密码登录"
#: authentication/templates/authentication/login.html:256 #: authentication/templates/authentication/login.html:256
#: users/templates/users/forgot_password.html:15
#: users/templates/users/forgot_password.html:16 #: users/templates/users/forgot_password.html:16
#: users/templates/users/forgot_password.html:17
msgid "Forgot password" msgid "Forgot password"
msgstr "忘记密码" msgstr "忘记密码"
@ -2708,9 +2709,9 @@ msgstr "验证码错误"
msgid "Please wait {} seconds before sending" msgid "Please wait {} seconds before sending"
msgstr "请在 {} 秒后发送" msgstr "请在 {} 秒后发送"
#: common/utils/ip/geoip/utils.py:24 #: common/utils/ip/geoip/utils.py:24 xpack/plugins/cloud/const.py:24
msgid "LAN" msgid "LAN"
msgstr "LAN" msgstr "局域网"
#: common/utils/ip/geoip/utils.py:26 common/utils/ip/utils.py:78 #: common/utils/ip/geoip/utils.py:26 common/utils/ip/utils.py:78
msgid "Invalid ip" msgid "Invalid ip"
@ -3648,7 +3649,7 @@ msgid "Client Id"
msgstr "客户端 ID" msgstr "客户端 ID"
#: settings/serializers/auth/oauth2.py:32 settings/serializers/auth/oidc.py:21 #: settings/serializers/auth/oauth2.py:32 settings/serializers/auth/oidc.py:21
#: xpack/plugins/cloud/serializers/account_attrs.py:36 #: xpack/plugins/cloud/serializers/account_attrs.py:38
msgid "Client Secret" msgid "Client Secret"
msgstr "客户端密钥" msgstr "客户端密钥"
@ -5077,12 +5078,12 @@ msgid "Bucket"
msgstr "桶名称" msgstr "桶名称"
#: terminal/serializers/storage.py:30 #: terminal/serializers/storage.py:30
#: xpack/plugins/cloud/serializers/account_attrs.py:15 #: xpack/plugins/cloud/serializers/account_attrs.py:17
msgid "Access key id" msgid "Access key id"
msgstr "访问密钥 ID(AK)" msgstr "访问密钥 ID(AK)"
#: terminal/serializers/storage.py:34 #: terminal/serializers/storage.py:34
#: xpack/plugins/cloud/serializers/account_attrs.py:18 #: xpack/plugins/cloud/serializers/account_attrs.py:20
msgid "Access key secret" msgid "Access key secret"
msgstr "访问密钥密文(SK)" msgstr "访问密钥密文(SK)"
@ -5884,11 +5885,11 @@ msgstr "你的 SSH 密钥已经被管理员重置"
msgid "click here to set your password" msgid "click here to set your password"
msgstr "点击这里设置密码" msgstr "点击这里设置密码"
#: users/templates/users/forgot_password.html:23 #: users/templates/users/forgot_password.html:24
msgid "Input your email, that will send a mail to your" msgid "Input your email, that will send a mail to your"
msgstr "输入您的邮箱, 将会发一封重置邮件到您的邮箱中" msgstr "输入您的邮箱, 将会发一封重置邮件到您的邮箱中"
#: users/templates/users/forgot_password.html:32 #: users/templates/users/forgot_password.html:33
msgid "Submit" msgid "Submit"
msgstr "提交" msgstr "提交"
@ -6320,31 +6321,31 @@ msgstr "谷歌云"
msgid "Fusion Compute" msgid "Fusion Compute"
msgstr "" msgstr ""
#: xpack/plugins/cloud/const.py:27 #: xpack/plugins/cloud/const.py:28
msgid "Instance name" msgid "Instance name"
msgstr "实例名称" msgstr "实例名称"
#: xpack/plugins/cloud/const.py:28 #: xpack/plugins/cloud/const.py:29
msgid "Instance name and Partial IP" msgid "Instance name and Partial IP"
msgstr "实例名称和部分IP" msgstr "实例名称和部分IP"
#: xpack/plugins/cloud/const.py:33 #: xpack/plugins/cloud/const.py:34
msgid "Succeed" msgid "Succeed"
msgstr "成功" msgstr "成功"
#: xpack/plugins/cloud/const.py:37 #: xpack/plugins/cloud/const.py:38
msgid "Unsync" msgid "Unsync"
msgstr "未同步" msgstr "未同步"
#: xpack/plugins/cloud/const.py:38 #: xpack/plugins/cloud/const.py:39
msgid "New Sync" msgid "New Sync"
msgstr "新同步" msgstr "新同步"
#: xpack/plugins/cloud/const.py:39 #: xpack/plugins/cloud/const.py:40
msgid "Synced" msgid "Synced"
msgstr "已同步" msgstr "已同步"
#: xpack/plugins/cloud/const.py:40 #: xpack/plugins/cloud/const.py:41
msgid "Released" msgid "Released"
msgstr "已释放" msgstr "已释放"
@ -6614,52 +6615,83 @@ msgstr "华南-广州-友好用户环境"
msgid "CN East-Suqian" msgid "CN East-Suqian"
msgstr "华东-宿迁" msgstr "华东-宿迁"
#: xpack/plugins/cloud/serializers/account.py:61 #: xpack/plugins/cloud/serializers/account.py:62
msgid "Validity display" msgid "Validity display"
msgstr "有效性显示" msgstr "有效性显示"
#: xpack/plugins/cloud/serializers/account.py:62 #: xpack/plugins/cloud/serializers/account.py:63
msgid "Provider display" msgid "Provider display"
msgstr "服务商显示" msgstr "服务商显示"
#: xpack/plugins/cloud/serializers/account_attrs.py:33 #: xpack/plugins/cloud/serializers/account_attrs.py:35
msgid "Client ID" msgid "Client ID"
msgstr "客户端 ID" msgstr "客户端 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:39 #: xpack/plugins/cloud/serializers/account_attrs.py:41
msgid "Tenant ID" msgid "Tenant ID"
msgstr "租户 ID" msgstr "租户 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:42 #: xpack/plugins/cloud/serializers/account_attrs.py:44
msgid "Subscription ID" msgid "Subscription ID"
msgstr "订阅 ID" msgstr "订阅 ID"
#: xpack/plugins/cloud/serializers/account_attrs.py:93 #: xpack/plugins/cloud/serializers/account_attrs.py:95
#: xpack/plugins/cloud/serializers/account_attrs.py:98 #: xpack/plugins/cloud/serializers/account_attrs.py:100
#: xpack/plugins/cloud/serializers/account_attrs.py:122 #: xpack/plugins/cloud/serializers/account_attrs.py:124
msgid "API Endpoint" msgid "API Endpoint"
msgstr "API 端点" msgstr "API 端点"
#: xpack/plugins/cloud/serializers/account_attrs.py:104 #: xpack/plugins/cloud/serializers/account_attrs.py:106
msgid "Auth url" msgid "Auth url"
msgstr "认证地址" msgstr "认证地址"
#: xpack/plugins/cloud/serializers/account_attrs.py:105 #: xpack/plugins/cloud/serializers/account_attrs.py:107
msgid "eg: http://openstack.example.com:5000/v3" msgid "eg: http://openstack.example.com:5000/v3"
msgstr "如: http://openstack.example.com:5000/v3" msgstr "如: http://openstack.example.com:5000/v3"
#: xpack/plugins/cloud/serializers/account_attrs.py:108 #: xpack/plugins/cloud/serializers/account_attrs.py:110
msgid "User domain" msgid "User domain"
msgstr "用户域" msgstr "用户域"
#: xpack/plugins/cloud/serializers/account_attrs.py:115 #: xpack/plugins/cloud/serializers/account_attrs.py:117
msgid "Service account key" msgid "Service account key"
msgstr "服务账号密钥" msgstr "服务账号密钥"
#: xpack/plugins/cloud/serializers/account_attrs.py:116 #: xpack/plugins/cloud/serializers/account_attrs.py:118
msgid "The file is in JSON format" msgid "The file is in JSON format"
msgstr "JSON 格式的文件" msgstr "JSON 格式的文件"
#: xpack/plugins/cloud/serializers/account_attrs.py:131
msgid "IP address invalid `{}`, {}"
msgstr "IP 地址无效: `{}`, {}"
#: xpack/plugins/cloud/serializers/account_attrs.py:137
msgid ""
"Format for comma-delimited string,Such as: 192.168.1.0/24, "
"10.0.0.0-10.0.0.255"
msgstr "格式为逗号分隔的字符串192.168.1.0/24,10.0.0.0-10.0.0.255"
#: xpack/plugins/cloud/serializers/account_attrs.py:141
msgid ""
"The port is used to detect the validity of the IP address. When the "
"synchronization task is executed, only the valid IP address will be "
"synchronized. <br>If the port is 0, all IP addresses are valid."
msgstr ""
"端口用来检测 IP 地址的有效性,在同步任务执行时,只会同步有效的 IP 地址。 <br>"
"如果端口为 0则表示所有 IP 地址均有效。"
#: xpack/plugins/cloud/serializers/account_attrs.py:149
msgid "Hostname prefix"
msgstr "主机名前缀"
#: xpack/plugins/cloud/serializers/account_attrs.py:152
msgid "IP segment"
msgstr "IP 网段"
#: xpack/plugins/cloud/serializers/account_attrs.py:156
msgid "Test port"
msgstr "测试端口"
#: xpack/plugins/cloud/serializers/task.py:29 #: xpack/plugins/cloud/serializers/task.py:29
msgid "" msgid ""
"Only instances matching the IP range will be synced. <br>If the instance " "Only instances matching the IP range will be synced. <br>If the instance "
@ -6776,12 +6808,3 @@ msgstr "旗舰版"
#: xpack/plugins/license/models.py:77 #: xpack/plugins/license/models.py:77
msgid "Community edition" msgid "Community edition"
msgstr "社区版" msgstr "社区版"
#~ msgid "Logo title"
#~ msgstr "图标标题"
#~ msgid "IP is not allowed"
#~ msgstr "来源 IP 不被允许登录"
#~ msgid "User cannot self-update fields: {}"
#~ msgstr "用户不能更新自己的字段: {}"

View File

@ -139,3 +139,4 @@ ipython==8.4.0
ForgeryPy3==0.3.1 ForgeryPy3==0.3.1
django-debug-toolbar==3.5 django-debug-toolbar==3.5
Pympler==1.0.1 Pympler==1.0.1
IPy==1.1