perf: 资产批量更新平台 (#10013)

Co-authored-by: feng <1304903146@qq.com>
pull/10015/head
fit2bot 2023-03-19 23:55:16 +08:00 committed by GitHub
parent 1acfdf0398
commit 39e618c127
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 273 additions and 204 deletions

View File

@ -2,15 +2,17 @@
# #
import django_filters import django_filters
from django.db.models import Q from django.db.models import Q
from django.shortcuts import get_object_or_404
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.status import HTTP_200_OK
from accounts.tasks import push_accounts_to_assets_task, verify_accounts_connectivity_task from accounts.tasks import push_accounts_to_assets_task, verify_accounts_connectivity_task
from assets import serializers from assets import serializers
from assets.exceptions import NotSupportedTemporarilyError from assets.exceptions import NotSupportedTemporarilyError
from assets.filters import IpInFilterBackend, LabelFilterBackend, NodeFilterBackend from assets.filters import IpInFilterBackend, LabelFilterBackend, NodeFilterBackend
from assets.models import Asset, Gateway from assets.models import Asset, Gateway, Platform
from assets.tasks import test_assets_connectivity_manual, update_assets_hardware_info_manual from assets.tasks import test_assets_connectivity_manual, update_assets_hardware_info_manual
from common.api import SuggestionMixin from common.api import SuggestionMixin
from common.drf.filters import BaseFilterSet from common.drf.filters import BaseFilterSet
@ -18,6 +20,7 @@ from common.utils import get_logger, is_uuid
from orgs.mixins import generics from orgs.mixins import generics
from orgs.mixins.api import OrgBulkModelViewSet from orgs.mixins.api import OrgBulkModelViewSet
from ..mixin import NodeFilterMixin from ..mixin import NodeFilterMixin
from ...notifications import BulkUpdatePlatformSkipAssetUserMsg
logger = get_logger(__file__) logger = get_logger(__file__)
__all__ = [ __all__ = [
@ -109,6 +112,7 @@ class AssetViewSet(SuggestionMixin, NodeFilterMixin, OrgBulkModelViewSet):
("info", "assets.view_asset"), ("info", "assets.view_asset"),
) )
extra_filter_backends = [LabelFilterBackend, IpInFilterBackend, NodeFilterBackend] extra_filter_backends = [LabelFilterBackend, IpInFilterBackend, NodeFilterBackend]
skip_assets = []
def get_serializer_class(self): def get_serializer_class(self):
cls = super().get_serializer_class() cls = super().get_serializer_class()
@ -144,6 +148,30 @@ class AssetViewSet(SuggestionMixin, NodeFilterMixin, OrgBulkModelViewSet):
return Response({'error': error}, status=400) return Response({'error': error}, status=400)
return super().create(request, *args, **kwargs) return super().create(request, *args, **kwargs)
def filter_bulk_update_data(self):
bulk_data = []
for data in self.request.data:
pk = data.get('id')
platform = data.get('platform')
if not platform:
bulk_data.append(data)
continue
asset = get_object_or_404(Asset, pk=pk)
platform = get_object_or_404(Platform, **platform)
if platform.type == asset.type:
bulk_data.append(data)
continue
self.skip_assets.append(asset)
return bulk_data
def bulk_update(self, request, *args, **kwargs):
bulk_data = self.filter_bulk_update_data()
request._full_data = bulk_data
response = super().bulk_update(request, *args, **kwargs)
if response.status_code == HTTP_200_OK and self.skip_assets:
user = request.user
BulkUpdatePlatformSkipAssetUserMsg(user, self.skip_assets).publish()
return response
class AssetsTaskMixin: class AssetsTaskMixin:
def perform_assets_task(self, serializer): def perform_assets_task(self, serializer):
@ -155,7 +183,7 @@ class AssetsTaskMixin:
else: else:
asset = assets[0] asset = assets[0]
if not asset.auto_info['ansible_enabled'] or \ if not asset.auto_info['ansible_enabled'] or \
not asset.auto_info['ping_enabled']: not asset.auto_info['ping_enabled']:
raise NotSupportedTemporarilyError() raise NotSupportedTemporarilyError()
task = test_assets_connectivity_manual(assets) task = test_assets_connectivity_manual(assets)
return task return task

View File

@ -0,0 +1,25 @@
from django.utils.translation import ugettext as _
from notifications.notifications import UserMessage
class BulkUpdatePlatformSkipAssetUserMsg(UserMessage):
def __init__(self, user, assets):
super().__init__(user)
self.assets = assets
def get_html_msg(self) -> dict:
subject = _("Batch update platform in assets, skipping assets that do not meet platform type")
message = f'<ol>{"".join([f"<li>{asset}</li>" for asset in self.assets])}</ol>'
return {
'subject': subject,
'message': message
}
@classmethod
def gen_test_msg(cls):
from users.models import User
from assets.models import Asset
user = User.objects.first()
assets = Asset.objects.all()[:10]
return cls(user, assets)

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:6fa80b59b9b5f95a9cfcad8ec47eacd519bb962d139ab90463795a7b306a0a72 oid sha256:03f75000def71efcfb08e7c1ee8122f6997b1f82be6cb747b52c33aa8b75a7bf
size 137935 size 138164

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: 2023-03-14 17:34+0800\n" "POT-Creation-Date: 2023-03-19 23:52+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"
@ -169,7 +169,7 @@ msgstr "作成のみ"
#: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19
#: assets/serializers/label.py:27 audits/models.py:48 #: assets/serializers/label.py:27 audits/models.py:48
#: authentication/models/connection_token.py:33 #: authentication/models/connection_token.py:33
#: perms/models/asset_permission.py:64 perms/serializers/permission.py:35 #: perms/models/asset_permission.py:64 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:20 terminal/models/session/session.py:32 #: terminal/backends/command/models.py:20 terminal/models/session/session.py:32
#: terminal/notifications.py:95 terminal/serializers/command.py:17 #: terminal/notifications.py:95 terminal/serializers/command.py:17
#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212
@ -197,7 +197,7 @@ msgstr "ソース"
#: acls/models/base.py:102 acls/serializers/base.py:57 #: acls/models/base.py:102 acls/serializers/base.py:57
#: assets/serializers/asset/common.py:131 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 #: audits/models.py:49 ops/models/base.py:18
#: perms/models/asset_permission.py:70 perms/serializers/permission.py:40 #: perms/models/asset_permission.py:70 perms/serializers/permission.py:39
#: terminal/backends/command/models.py:21 terminal/models/session/session.py:34 #: 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 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85
msgid "Account" msgid "Account"
@ -447,7 +447,7 @@ msgstr "アカウントの確認"
#: assets/models/group.py:20 assets/models/label.py:18 #: assets/models/group.py:20 assets/models/label.py:18
#: assets/models/platform.py:21 assets/models/platform.py:76 #: assets/models/platform.py:21 assets/models/platform.py:76
#: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151
#: assets/serializers/platform.py:133 #: assets/serializers/platform.py:132
#: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21 #: 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 #: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19 #: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19
@ -533,7 +533,7 @@ msgstr "エスクローされたパスワード"
#: accounts/serializers/account/account.py:75 applications/models.py:11 #: accounts/serializers/account/account.py:75 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:77 #: assets/models/label.py:21 assets/models/platform.py:77
#: assets/serializers/asset/common.py:127 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 #: assets/serializers/platform.py:93 assets/serializers/platform.py:133
#: perms/serializers/user_permission.py:26 settings/models.py:35 #: perms/serializers/user_permission.py:26 settings/models.py:35
#: tickets/models/ticket/apply_application.py:13 #: tickets/models/ticket/apply_application.py:13
msgid "Category" msgid "Category"
@ -544,7 +544,7 @@ msgstr "カテゴリ"
#: acls/serializers/command_acl.py:18 applications/models.py:14 #: acls/serializers/command_acl.py:18 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:78 #: assets/models/cmd_filter.py:74 assets/models/platform.py:78
#: assets/serializers/asset/common.py:128 assets/serializers/platform.py:93 #: assets/serializers/asset/common.py:128 assets/serializers/platform.py:92
#: audits/serializers.py:48 #: audits/serializers.py:48
#: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102 #: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31
@ -562,6 +562,30 @@ msgstr "タイプ"
msgid "Asset not found" msgid "Asset not found"
msgstr "資産が存在しません" msgstr "資産が存在しません"
#: accounts/serializers/account/account.py:144 acls/models/base.py:98
#: acls/models/login_acl.py:13 acls/serializers/base.py:55
#: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:24
#: assets/models/label.py:16 audits/models.py:44 audits/models.py:63
#: audits/models.py:141 authentication/models/connection_token.py:29
#: 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:30 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
#: terminal/serializers/command.py:16 tickets/models/comment.py:21
#: users/const.py:14 users/models/user.py:911 users/models/user.py:942
#: users/serializers/group.py:18
msgid "User"
msgstr "ユーザー"
#: accounts/serializers/account/account.py:145
#: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:98 terminal/notifications.py:146
msgid "Date"
msgstr "日付"
#: accounts/serializers/account/backup.py:31 #: accounts/serializers/account/backup.py:31
#: accounts/serializers/automations/base.py:36 #: accounts/serializers/automations/base.py:36
#: assets/serializers/automations/base.py:34 ops/mixin.py:23 ops/mixin.py:103 #: assets/serializers/automations/base.py:34 ops/mixin.py:23 ops/mixin.py:103
@ -592,7 +616,7 @@ msgid "Key password"
msgstr "キーパスワード" msgstr "キーパスワード"
#: accounts/serializers/account/base.py:81 #: accounts/serializers/account/base.py:81
#: assets/serializers/asset/common.py:301 #: assets/serializers/asset/common.py:303
msgid "Spec info" msgid "Spec info"
msgstr "特別情報" msgstr "特別情報"
@ -733,24 +757,6 @@ msgstr "レビュー担当者"
msgid "Active" msgid "Active"
msgstr "アクティブ" msgstr "アクティブ"
#: acls/models/base.py:98 acls/models/login_acl.py:13
#: acls/serializers/base.py:55 acls/serializers/login_acl.py:21
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:44
#: audits/models.py:63 audits/models.py:141
#: authentication/models/connection_token.py:29
#: 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: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
#: terminal/serializers/command.py:16 tickets/models/comment.py:21
#: users/const.py:14 users/models/user.py:911 users/models/user.py:942
#: users/serializers/group.py:18
msgid "User"
msgstr "ユーザー"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 #: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:65 terminal/const.py:67 #: ops/serializers/job.py:65 terminal/const.py:67
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18 #: terminal/models/session/session.py:43 terminal/serializers/command.py:18
@ -764,7 +770,7 @@ msgid "Regex"
msgstr "正規情報" msgstr "正規情報"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/serializers/basic.py:10 xpack/plugins/license/models.py:29 #: settings/serializers/basic.py:10 xpack/plugins/license/models.py:30
msgid "Content" msgid "Content"
msgstr "コンテンツ" msgstr "コンテンツ"
@ -883,7 +889,7 @@ msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8
#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:61 #: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:62
msgid "IP" msgid "IP"
msgstr "IP" msgstr "IP"
@ -908,7 +914,7 @@ msgstr "アプリケーション"
msgid "Can match application" msgid "Can match application"
msgstr "アプリケーションを一致させることができます" msgstr "アプリケーションを一致させることができます"
#: assets/api/asset/asset.py:143 #: assets/api/asset/asset.py:147
msgid "Cannot create asset directly, you should create a host or other" msgid "Cannot create asset directly, you should create a host or other"
msgstr "" msgstr ""
"資産を直接作成することはできません。ホストまたはその他を作成する必要がありま" "資産を直接作成することはできません。ホストまたはその他を作成する必要がありま"
@ -1060,7 +1066,7 @@ msgid "Basic"
msgstr "基本" msgstr "基本"
#: assets/const/web.py:61 assets/models/asset/web.py:13 #: assets/const/web.py:61 assets/models/asset/web.py:13
#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:40 #: assets/serializers/asset/common.py:123 assets/serializers/platform.py:39
msgid "Script" msgid "Script"
msgstr "脚本" msgstr "脚本"
@ -1196,7 +1202,7 @@ msgstr "アドレス"
#: assets/models/asset/common.py:104 assets/models/platform.py:112 #: assets/models/asset/common.py:104 assets/models/platform.py:112
#: authentication/serializers/connect_token_secret.py:108 #: authentication/serializers/connect_token_secret.py:108
#: perms/serializers/user_permission.py:24 #: perms/serializers/user_permission.py:24
#: xpack/plugins/cloud/serializers/account_attrs.py:187 #: xpack/plugins/cloud/serializers/account_attrs.py:197
msgid "Platform" msgid "Platform"
msgstr "プラットフォーム" msgstr "プラットフォーム"
@ -1210,6 +1216,10 @@ msgstr "ドメイン"
msgid "Labels" msgid "Labels"
msgstr "ラベル" msgstr "ラベル"
#: assets/models/asset/common.py:111 assets/serializers/asset/host.py:27
msgid "Info"
msgstr "情報"
#: assets/models/asset/common.py:283 #: assets/models/asset/common.py:283
msgid "Can refresh asset hardware info" msgid "Can refresh asset hardware info"
msgstr "資産ハードウェア情報を更新できます" msgstr "資産ハードウェア情報を更新できます"
@ -1247,27 +1257,27 @@ msgstr "クライアントキー"
msgid "Allow invalid cert" msgid "Allow invalid cert"
msgstr "証明書チェックを無視" msgstr "証明書チェックを無視"
#: assets/models/asset/web.py:9 assets/serializers/platform.py:30 #: assets/models/asset/web.py:9 assets/serializers/platform.py:29
msgid "Autofill" msgid "Autofill"
msgstr "自動充填" msgstr "自動充填"
#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120 #: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120
#: assets/serializers/platform.py:32 #: assets/serializers/platform.py:31
msgid "Username selector" msgid "Username selector"
msgstr "ユーザー名ピッカー" msgstr "ユーザー名ピッカー"
#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121 #: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121
#: assets/serializers/platform.py:35 #: assets/serializers/platform.py:34
msgid "Password selector" msgid "Password selector"
msgstr "パスワードセレクター" msgstr "パスワードセレクター"
#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122 #: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122
#: assets/serializers/platform.py:38 #: assets/serializers/platform.py:37
msgid "Submit selector" msgid "Submit selector"
msgstr "ボタンセレクターを確認する" msgstr "ボタンセレクターを確認する"
#: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38
#: assets/serializers/asset/common.py:300 rbac/tree.py:35 #: assets/serializers/asset/common.py:302 rbac/tree.py:35
msgid "Accounts" msgid "Accounts"
msgstr "アカウント" msgstr "アカウント"
@ -1307,7 +1317,7 @@ msgid "Date verified"
msgstr "確認済みの日付" msgstr "確認済みの日付"
#: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61 #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61
#: perms/serializers/permission.py:33 users/models/group.py:25 #: perms/serializers/permission.py:32 users/models/group.py:25
#: users/models/user.py:723 #: users/models/user.py:723
msgid "User group" msgid "User group"
msgstr "ユーザーグループ" msgstr "ユーザーグループ"
@ -1396,7 +1406,7 @@ msgstr "フルバリュー"
msgid "Parent key" msgid "Parent key"
msgstr "親キー" msgstr "親キー"
#: assets/models/node.py:558 perms/serializers/permission.py:36 #: assets/models/node.py:558 perms/serializers/permission.py:35
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:96 #: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:96
msgid "Node" msgid "Node"
msgstr "ノード" msgstr "ノード"
@ -1423,45 +1433,45 @@ msgstr "有効化"
msgid "Ansible config" msgid "Ansible config"
msgstr "Ansible 構成" msgstr "Ansible 構成"
#: assets/models/platform.py:44 assets/serializers/platform.py:61 #: assets/models/platform.py:44 assets/serializers/platform.py:60
msgid "Ping enabled" msgid "Ping enabled"
msgstr "アセット ディスカバリを有効にする" msgstr "アセット ディスカバリを有効にする"
#: assets/models/platform.py:45 assets/serializers/platform.py:62 #: assets/models/platform.py:45 assets/serializers/platform.py:61
msgid "Ping method" msgid "Ping method"
msgstr "資産検出方法" msgstr "資産検出方法"
#: assets/models/platform.py:46 assets/models/platform.py:59 #: assets/models/platform.py:46 assets/models/platform.py:59
#: assets/serializers/platform.py:63 #: assets/serializers/platform.py:62
msgid "Gather facts enabled" msgid "Gather facts enabled"
msgstr "資産情報の収集を有効にする" msgstr "資産情報の収集を有効にする"
#: assets/models/platform.py:47 assets/models/platform.py:61 #: assets/models/platform.py:47 assets/models/platform.py:61
#: assets/serializers/platform.py:64 #: assets/serializers/platform.py:63
msgid "Gather facts method" msgid "Gather facts method"
msgstr "情報収集の方法" msgstr "情報収集の方法"
#: assets/models/platform.py:48 assets/serializers/platform.py:67 #: assets/models/platform.py:48 assets/serializers/platform.py:66
msgid "Change secret enabled" msgid "Change secret enabled"
msgstr "パスワードの変更が有効" msgstr "パスワードの変更が有効"
#: assets/models/platform.py:50 assets/serializers/platform.py:68 #: assets/models/platform.py:50 assets/serializers/platform.py:67
msgid "Change secret method" msgid "Change secret method"
msgstr "パスワード変更モード" msgstr "パスワード変更モード"
#: assets/models/platform.py:52 assets/serializers/platform.py:69 #: assets/models/platform.py:52 assets/serializers/platform.py:68
msgid "Push account enabled" msgid "Push account enabled"
msgstr "アカウントのプッシュを有効にする" msgstr "アカウントのプッシュを有効にする"
#: assets/models/platform.py:54 assets/serializers/platform.py:70 #: assets/models/platform.py:54 assets/serializers/platform.py:69
msgid "Push account method" msgid "Push account method"
msgstr "アカウントプッシュ方式" msgstr "アカウントプッシュ方式"
#: assets/models/platform.py:56 assets/serializers/platform.py:65 #: assets/models/platform.py:56 assets/serializers/platform.py:64
msgid "Verify account enabled" msgid "Verify account enabled"
msgstr "アカウントの確認をオンにする" msgstr "アカウントの確認をオンにする"
#: assets/models/platform.py:58 assets/serializers/platform.py:66 #: assets/models/platform.py:58 assets/serializers/platform.py:65
msgid "Verify account method" msgid "Verify account method"
msgstr "アカウント認証方法" msgstr "アカウント認証方法"
@ -1473,23 +1483,23 @@ msgstr "メタ"
msgid "Internal" msgid "Internal"
msgstr "ビルトイン" msgstr "ビルトイン"
#: assets/models/platform.py:83 assets/serializers/platform.py:91 #: assets/models/platform.py:83 assets/serializers/platform.py:90
msgid "Charset" msgid "Charset"
msgstr "シャーセット" msgstr "シャーセット"
#: assets/models/platform.py:85 assets/serializers/platform.py:119 #: assets/models/platform.py:85 assets/serializers/platform.py:118
msgid "Domain enabled" msgid "Domain enabled"
msgstr "ドメインを有効にする" msgstr "ドメインを有効にする"
#: assets/models/platform.py:87 assets/serializers/platform.py:118 #: assets/models/platform.py:87 assets/serializers/platform.py:117
msgid "Su enabled" msgid "Su enabled"
msgstr "アカウントの切り替えを有効にする" msgstr "アカウントの切り替えを有効にする"
#: assets/models/platform.py:88 assets/serializers/platform.py:101 #: assets/models/platform.py:88 assets/serializers/platform.py:100
msgid "Su method" msgid "Su method"
msgstr "アカウントの切り替え方法" msgstr "アカウントの切り替え方法"
#: assets/models/platform.py:90 assets/serializers/platform.py:98 #: assets/models/platform.py:90 assets/serializers/platform.py:97
msgid "Automation" msgid "Automation"
msgstr "オートメーション" msgstr "オートメーション"
@ -1498,11 +1508,19 @@ msgstr "オートメーション"
msgid "%(value)s is not an even number" msgid "%(value)s is not an even number"
msgstr "%(value)s は偶数ではありません" msgstr "%(value)s は偶数ではありません"
#: assets/notifications.py:12
msgid ""
"Batch update platform in assets, skipping assets that do not meet platform "
"type"
msgstr ""
"プラットフォームタイプがスキップされた資産に合致しない、資産内の一括更新プ"
"ラットフォーム"
#: assets/serializers/asset/common.py:119 #: assets/serializers/asset/common.py:119
msgid "Auto fill" msgid "Auto fill"
msgstr "自動充填" msgstr "自動充填"
#: assets/serializers/asset/common.py:130 assets/serializers/platform.py:96 #: assets/serializers/asset/common.py:130 assets/serializers/platform.py:95
#: authentication/serializers/connect_token_secret.py:28 #: authentication/serializers/connect_token_secret.py:28
#: authentication/serializers/connect_token_secret.py:66 #: authentication/serializers/connect_token_secret.py:66
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99
@ -1515,19 +1533,19 @@ msgid "Node path"
msgstr "ノードパスです" msgstr "ノードパスです"
#: assets/serializers/asset/common.py:150 #: assets/serializers/asset/common.py:150
#: assets/serializers/asset/common.py:302 #: assets/serializers/asset/common.py:304
msgid "Auto info" msgid "Auto info"
msgstr "自動情報" msgstr "自動情報"
#: assets/serializers/asset/common.py:226 #: assets/serializers/asset/common.py:228
msgid "Platform not exist" msgid "Platform not exist"
msgstr "プラットフォームが存在しません" msgstr "プラットフォームが存在しません"
#: assets/serializers/asset/common.py:261 #: assets/serializers/asset/common.py:263
msgid "port out of range (1-65535)" msgid "port out of range (1-65535)"
msgstr "ポート番号が範囲外です (1-65535)" msgstr "ポート番号が範囲外です (1-65535)"
#: assets/serializers/asset/common.py:268 #: assets/serializers/asset/common.py:270
msgid "Protocol is required: {}" msgid "Protocol is required: {}"
msgstr "プロトコルが必要です: {}" msgstr "プロトコルが必要です: {}"
@ -1588,10 +1606,6 @@ msgstr "システムバージョン"
msgid "OS arch" msgid "OS arch"
msgstr "システムアーキテクチャ" msgstr "システムアーキテクチャ"
#: assets/serializers/asset/host.py:27
msgid "Info"
msgstr "情報"
#: assets/serializers/cagegory.py:9 #: assets/serializers/cagegory.py:9
msgid "Constraints" msgid "Constraints"
msgstr "制約" msgstr "制約"
@ -1620,31 +1634,31 @@ msgstr "含まれない:/"
msgid "The same level node name cannot be the same" msgid "The same level node name cannot be the same"
msgstr "同じレベルのノード名を同じにすることはできません。" msgstr "同じレベルのノード名を同じにすることはできません。"
#: assets/serializers/platform.py:26 #: assets/serializers/platform.py:25
msgid "SFTP enabled" msgid "SFTP enabled"
msgstr "SFTP が有効" msgstr "SFTP が有効"
#: assets/serializers/platform.py:27 #: assets/serializers/platform.py:26
msgid "SFTP home" msgid "SFTP home"
msgstr "SFTP ルート パス" msgstr "SFTP ルート パス"
#: assets/serializers/platform.py:43 #: assets/serializers/platform.py:42
msgid "Auth with username" msgid "Auth with username"
msgstr "ユーザー名で認証する" msgstr "ユーザー名で認証する"
#: assets/serializers/platform.py:71 #: assets/serializers/platform.py:70
msgid "Gather accounts enabled" msgid "Gather accounts enabled"
msgstr "アカウント収集を有効にする" msgstr "アカウント収集を有効にする"
#: assets/serializers/platform.py:72 #: assets/serializers/platform.py:71
msgid "Gather accounts method" msgid "Gather accounts method"
msgstr "アカウントの収集方法" msgstr "アカウントの収集方法"
#: assets/serializers/platform.py:78 #: assets/serializers/platform.py:77
msgid "Primary" msgid "Primary"
msgstr "主要" msgstr "主要"
#: assets/serializers/platform.py:120 #: assets/serializers/platform.py:119
msgid "Default Domain" msgid "Default Domain"
msgstr "デフォルト ドメイン" msgstr "デフォルト ドメイン"
@ -2494,15 +2508,15 @@ msgid "Ticket info"
msgstr "作業指示情報" msgstr "作業指示情報"
#: authentication/serializers/connection_token.py:20 #: authentication/serializers/connection_token.py:20
#: perms/models/asset_permission.py:71 perms/serializers/permission.py:37 #: perms/models/asset_permission.py:71 perms/serializers/permission.py:36
#: perms/serializers/permission.py:70 #: perms/serializers/permission.py:69
#: tickets/models/ticket/apply_application.py:28 #: tickets/models/ticket/apply_application.py:28
#: tickets/models/ticket/apply_asset.py:18 #: tickets/models/ticket/apply_asset.py:18
msgid "Actions" msgid "Actions"
msgstr "アクション" msgstr "アクション"
#: authentication/serializers/connection_token.py:41 #: authentication/serializers/connection_token.py:41
#: perms/serializers/permission.py:39 perms/serializers/permission.py:71 #: perms/serializers/permission.py:38 perms/serializers/permission.py:70
#: users/serializers/user.py:93 users/serializers/user.py:165 #: users/serializers/user.py:93 users/serializers/user.py:165
msgid "Is expired" msgid "Is expired"
msgstr "期限切れです" msgstr "期限切れです"
@ -2522,8 +2536,8 @@ msgstr "メール"
msgid "The {} cannot be empty" msgid "The {} cannot be empty"
msgstr "{} 空にしてはならない" msgstr "{} 空にしてはならない"
#: authentication/serializers/token.py:79 perms/serializers/permission.py:38 #: authentication/serializers/token.py:79 perms/serializers/permission.py:37
#: perms/serializers/permission.py:72 users/serializers/user.py:94 #: perms/serializers/permission.py:71 users/serializers/user.py:94
#: users/serializers/user.py:163 #: users/serializers/user.py:163
msgid "Is valid" msgid "Is valid"
msgstr "有効です" msgstr "有効です"
@ -2544,11 +2558,6 @@ msgstr "APIキー記号APIヘッダーを使用すると、すべてのリクエ
msgid "docs" msgid "docs"
msgstr "ドキュメント" msgstr "ドキュメント"
#: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:98 terminal/notifications.py:146
msgid "Date"
msgstr "日付"
#: authentication/templates/authentication/_access_key_modal.html:48 #: authentication/templates/authentication/_access_key_modal.html:48
msgid "Show" msgid "Show"
msgstr "表示" msgstr "表示"
@ -2991,7 +3000,7 @@ msgstr "組織 ID"
msgid "The file content overflowed (The maximum length `{}` bytes)" msgid "The file content overflowed (The maximum length `{}` bytes)"
msgstr "ファイルの内容がオーバーフローしました (最大長 '{}' バイト)" msgstr "ファイルの内容がオーバーフローしました (最大長 '{}' バイト)"
#: common/drf/parsers/base.py:189 #: common/drf/parsers/base.py:193
msgid "Parse file error: {}" msgid "Parse file error: {}"
msgstr "解析ファイルエラー: {}" msgstr "解析ファイルエラー: {}"
@ -3242,11 +3251,11 @@ msgstr "投稿サイトニュース"
msgid "No account available" msgid "No account available"
msgstr "利用可能なアカウントがありません" msgstr "利用可能なアカウントがありません"
#: ops/ansible/inventory.py:189 #: ops/ansible/inventory.py:196
msgid "Ansible disabled" msgid "Ansible disabled"
msgstr "Ansible 無効" msgstr "Ansible 無効"
#: ops/ansible/inventory.py:205 #: ops/ansible/inventory.py:212
msgid "Skip hosts below:" msgid "Skip hosts below:"
msgstr "次のホストをスキップします: " msgstr "次のホストをスキップします: "
@ -4443,7 +4452,7 @@ msgid "SSO auth key TTL"
msgstr "Token有効期間" msgstr "Token有効期間"
#: settings/serializers/auth/sso.py:17 #: settings/serializers/auth/sso.py:17
#: xpack/plugins/cloud/serializers/account_attrs.py:184 #: xpack/plugins/cloud/serializers/account_attrs.py:194
msgid "Unit: second" msgid "Unit: second"
msgstr "単位: 秒" msgstr "単位: 秒"
@ -5547,7 +5556,7 @@ msgid "Redis port"
msgstr "Redis ポート" msgstr "Redis ポート"
#: terminal/models/component/endpoint.py:29 #: terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:98 terminal/serializers/endpoint.py:64 #: terminal/models/component/endpoint.py:98 terminal/serializers/endpoint.py:66
#: terminal/serializers/storage.py:38 terminal/serializers/storage.py:50 #: terminal/serializers/storage.py:38 terminal/serializers/storage.py:50
#: terminal/serializers/storage.py:80 terminal/serializers/storage.py:90 #: terminal/serializers/storage.py:80 terminal/serializers/storage.py:90
#: terminal/serializers/storage.py:98 #: terminal/serializers/storage.py:98
@ -5811,15 +5820,15 @@ msgstr "アカウント"
msgid "Timestamp" msgid "Timestamp"
msgstr "タイムスタンプ" msgstr "タイムスタンプ"
#: terminal/serializers/endpoint.py:14 #: terminal/serializers/endpoint.py:15
msgid "Oracle port" msgid "Oracle port"
msgstr "Oracle ポート" msgstr "Oracle ポート"
#: terminal/serializers/endpoint.py:17 #: terminal/serializers/endpoint.py:18
msgid "Oracle port range" msgid "Oracle port range"
msgstr "Oracle がリッスンするポート範囲" msgstr "Oracle がリッスンするポート範囲"
#: terminal/serializers/endpoint.py:19 #: terminal/serializers/endpoint.py:20
msgid "" msgid ""
"Oracle proxy server listen port is dynamic, Each additional Oracle database " "Oracle proxy server listen port is dynamic, Each additional Oracle database "
"instance adds a port listener" "instance adds a port listener"
@ -5827,13 +5836,13 @@ msgstr ""
"Oracle プロキシサーバーがリッスンするポートは動的です。追加の Oracle データ" "Oracle プロキシサーバーがリッスンするポートは動的です。追加の Oracle データ"
"ベースインスタンスはポートリスナーを追加します" "ベースインスタンスはポートリスナーを追加します"
#: terminal/serializers/endpoint.py:35 #: terminal/serializers/endpoint.py:36
msgid "Visit IP/Host, if empty, use the current request instead" msgid "Visit IP/Host, if empty, use the current request instead"
msgstr "" msgstr ""
"IP/ホストにアクセスします。空の場合は、代わりに現在のリクエストのアドレスを使" "IP/ホストにアクセスします。空の場合は、代わりに現在のリクエストのアドレスを使"
"用します" "用します"
#: terminal/serializers/endpoint.py:58 #: terminal/serializers/endpoint.py:59
msgid "" msgid ""
"If asset IP addresses under different endpoints conflict, use asset labels" "If asset IP addresses under different endpoints conflict, use asset labels"
msgstr "" msgstr ""
@ -7320,13 +7329,13 @@ msgstr "ファイルはJSON形式です。"
msgid "IP address invalid `{}`, {}" msgid "IP address invalid `{}`, {}"
msgstr "IPアドレスが無効: '{}', {}" msgstr "IPアドレスが無効: '{}', {}"
#: xpack/plugins/cloud/serializers/account_attrs.py:162 #: xpack/plugins/cloud/serializers/account_attrs.py:172
msgid "" msgid ""
"Format for comma-delimited string,Such as: 192.168.1.0/24, " "Format for comma-delimited string,Such as: 192.168.1.0/24, "
"10.0.0.0-10.0.0.255" "10.0.0.0-10.0.0.255"
msgstr "形式はコンマ区切りの文字列です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:166 #: xpack/plugins/cloud/serializers/account_attrs.py:176
msgid "" msgid ""
"The port is used to detect the validity of the IP address. When the " "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 " "synchronization task is executed, only the valid IP address will be "
@ -7336,19 +7345,19 @@ msgstr ""
"実行されると、有効な IP アドレスのみが同期されます。 <br>ポートが0の場合、す" "実行されると、有効な IP アドレスのみが同期されます。 <br>ポートが0の場合、す"
"べてのIPアドレスが有効です。" "べてのIPアドレスが有効です。"
#: xpack/plugins/cloud/serializers/account_attrs.py:174 #: xpack/plugins/cloud/serializers/account_attrs.py:184
msgid "Hostname prefix" msgid "Hostname prefix"
msgstr "ホスト名プレフィックス" msgstr "ホスト名プレフィックス"
#: xpack/plugins/cloud/serializers/account_attrs.py:177 #: xpack/plugins/cloud/serializers/account_attrs.py:187
msgid "IP segment" msgid "IP segment"
msgstr "IP セグメント" msgstr "IP セグメント"
#: xpack/plugins/cloud/serializers/account_attrs.py:181 #: xpack/plugins/cloud/serializers/account_attrs.py:191
msgid "Test port" msgid "Test port"
msgstr "テストポート" msgstr "テストポート"
#: xpack/plugins/cloud/serializers/account_attrs.py:184 #: xpack/plugins/cloud/serializers/account_attrs.py:194
msgid "Test timeout" msgid "Test timeout"
msgstr "テストタイムアウト" msgstr "テストタイムアウト"
@ -7430,22 +7439,22 @@ msgstr "ライセンスのインポートに成功"
msgid "License is invalid" msgid "License is invalid"
msgstr "ライセンスが無効です" msgstr "ライセンスが無効です"
#: xpack/plugins/license/meta.py:11 xpack/plugins/license/models.py:135 #: xpack/plugins/license/meta.py:11 xpack/plugins/license/models.py:138
msgid "License" msgid "License"
msgstr "ライセンス" msgstr "ライセンス"
#: xpack/plugins/license/models.py:79 #: xpack/plugins/license/models.py:80
msgid "Standard edition" msgid "Standard edition"
msgstr "標準版" msgstr "標準版"
#: xpack/plugins/license/models.py:81 #: xpack/plugins/license/models.py:82
msgid "Enterprise edition" msgid "Enterprise edition"
msgstr "エンタープライズ版" msgstr "エンタープライズ版"
#: xpack/plugins/license/models.py:83 #: xpack/plugins/license/models.py:84
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "究極のエディション" msgstr "究極のエディション"
#: xpack/plugins/license/models.py:85 #: xpack/plugins/license/models.py:86
msgid "Community edition" msgid "Community edition"
msgstr "コミュニティ版" 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:9819889a6d8b2934b06c5b242e3f63f404997f30851919247a405f542e8a03bc oid sha256:fffd0032a105eb0c991f4eed7aca4fb344d9e8ab834f7fd2451b164532f198d7
size 113244 size 113407

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: 2023-03-14 17:34+0800\n" "POT-Creation-Date: 2023-03-19 23:52+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"
@ -168,7 +168,7 @@ msgstr "仅创建"
#: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19 #: assets/models/cmd_filter.py:36 assets/serializers/domain.py:19
#: assets/serializers/label.py:27 audits/models.py:48 #: assets/serializers/label.py:27 audits/models.py:48
#: authentication/models/connection_token.py:33 #: authentication/models/connection_token.py:33
#: perms/models/asset_permission.py:64 perms/serializers/permission.py:35 #: perms/models/asset_permission.py:64 perms/serializers/permission.py:34
#: terminal/backends/command/models.py:20 terminal/models/session/session.py:32 #: terminal/backends/command/models.py:20 terminal/models/session/session.py:32
#: terminal/notifications.py:95 terminal/serializers/command.py:17 #: terminal/notifications.py:95 terminal/serializers/command.py:17
#: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212 #: tickets/models/ticket/apply_asset.py:16 xpack/plugins/cloud/models.py:212
@ -196,7 +196,7 @@ msgstr "来源"
#: acls/models/base.py:102 acls/serializers/base.py:57 #: acls/models/base.py:102 acls/serializers/base.py:57
#: assets/serializers/asset/common.py:131 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 #: audits/models.py:49 ops/models/base.py:18
#: perms/models/asset_permission.py:70 perms/serializers/permission.py:40 #: perms/models/asset_permission.py:70 perms/serializers/permission.py:39
#: terminal/backends/command/models.py:21 terminal/models/session/session.py:34 #: 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 #: tickets/models/ticket/command_confirm.py:13 xpack/plugins/cloud/models.py:85
msgid "Account" msgid "Account"
@ -446,7 +446,7 @@ msgstr "账号验证"
#: assets/models/group.py:20 assets/models/label.py:18 #: assets/models/group.py:20 assets/models/label.py:18
#: assets/models/platform.py:21 assets/models/platform.py:76 #: assets/models/platform.py:21 assets/models/platform.py:76
#: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151 #: assets/serializers/asset/common.py:74 assets/serializers/asset/common.py:151
#: assets/serializers/platform.py:133 #: assets/serializers/platform.py:132
#: authentication/serializers/connect_token_secret.py:103 ops/mixin.py:21 #: 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 #: ops/models/adhoc.py:21 ops/models/celery.py:15 ops/models/celery.py:57
#: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19 #: ops/models/job.py:91 ops/models/playbook.py:23 ops/serializers/job.py:19
@ -529,7 +529,7 @@ msgstr "已托管密码"
#: accounts/serializers/account/account.py:75 applications/models.py:11 #: accounts/serializers/account/account.py:75 applications/models.py:11
#: assets/models/label.py:21 assets/models/platform.py:77 #: assets/models/label.py:21 assets/models/platform.py:77
#: assets/serializers/asset/common.py:127 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 #: assets/serializers/platform.py:93 assets/serializers/platform.py:133
#: perms/serializers/user_permission.py:26 settings/models.py:35 #: perms/serializers/user_permission.py:26 settings/models.py:35
#: tickets/models/ticket/apply_application.py:13 #: tickets/models/ticket/apply_application.py:13
msgid "Category" msgid "Category"
@ -540,7 +540,7 @@ msgstr "类别"
#: acls/serializers/command_acl.py:18 applications/models.py:14 #: acls/serializers/command_acl.py:18 applications/models.py:14
#: assets/models/_user.py:50 assets/models/automations/base.py:20 #: assets/models/_user.py:50 assets/models/automations/base.py:20
#: assets/models/cmd_filter.py:74 assets/models/platform.py:78 #: assets/models/cmd_filter.py:74 assets/models/platform.py:78
#: assets/serializers/asset/common.py:128 assets/serializers/platform.py:93 #: assets/serializers/asset/common.py:128 assets/serializers/platform.py:92
#: audits/serializers.py:48 #: audits/serializers.py:48
#: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102 #: authentication/serializers/connect_token_secret.py:116 ops/models/job.py:102
#: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31 #: perms/serializers/user_permission.py:27 terminal/models/applet/applet.py:31
@ -558,6 +558,30 @@ msgstr "类型"
msgid "Asset not found" msgid "Asset not found"
msgstr "资产不存在" msgstr "资产不存在"
#: accounts/serializers/account/account.py:144 acls/models/base.py:98
#: acls/models/login_acl.py:13 acls/serializers/base.py:55
#: acls/serializers/login_acl.py:21 assets/models/cmd_filter.py:24
#: assets/models/label.py:16 audits/models.py:44 audits/models.py:63
#: audits/models.py:141 authentication/models/connection_token.py:29
#: 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:30 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
#: terminal/serializers/command.py:16 tickets/models/comment.py:21
#: users/const.py:14 users/models/user.py:911 users/models/user.py:942
#: users/serializers/group.py:18
msgid "User"
msgstr "用户"
#: accounts/serializers/account/account.py:145
#: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:98 terminal/notifications.py:146
msgid "Date"
msgstr "日期"
#: accounts/serializers/account/backup.py:31 #: accounts/serializers/account/backup.py:31
#: accounts/serializers/automations/base.py:36 #: accounts/serializers/automations/base.py:36
#: assets/serializers/automations/base.py:34 ops/mixin.py:23 ops/mixin.py:103 #: assets/serializers/automations/base.py:34 ops/mixin.py:23 ops/mixin.py:103
@ -588,7 +612,7 @@ msgid "Key password"
msgstr "密钥密码" msgstr "密钥密码"
#: accounts/serializers/account/base.py:81 #: accounts/serializers/account/base.py:81
#: assets/serializers/asset/common.py:301 #: assets/serializers/asset/common.py:303
msgid "Spec info" msgid "Spec info"
msgstr "特殊信息" msgstr "特殊信息"
@ -729,24 +753,6 @@ msgstr "审批人"
msgid "Active" msgid "Active"
msgstr "激活中" msgstr "激活中"
#: acls/models/base.py:98 acls/models/login_acl.py:13
#: acls/serializers/base.py:55 acls/serializers/login_acl.py:21
#: assets/models/cmd_filter.py:24 assets/models/label.py:16 audits/models.py:44
#: audits/models.py:63 audits/models.py:141
#: authentication/models/connection_token.py:29
#: 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: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
#: terminal/serializers/command.py:16 tickets/models/comment.py:21
#: users/const.py:14 users/models/user.py:911 users/models/user.py:942
#: users/serializers/group.py:18
msgid "User"
msgstr "用户"
#: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60 #: acls/models/command_acl.py:16 assets/models/cmd_filter.py:60
#: ops/serializers/job.py:65 terminal/const.py:67 #: ops/serializers/job.py:65 terminal/const.py:67
#: terminal/models/session/session.py:43 terminal/serializers/command.py:18 #: terminal/models/session/session.py:43 terminal/serializers/command.py:18
@ -760,7 +766,7 @@ msgid "Regex"
msgstr "正则表达式" msgstr "正则表达式"
#: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79 #: acls/models/command_acl.py:26 assets/models/cmd_filter.py:79
#: settings/serializers/basic.py:10 xpack/plugins/license/models.py:29 #: settings/serializers/basic.py:10 xpack/plugins/license/models.py:30
msgid "Content" msgid "Content"
msgstr "内容" msgstr "内容"
@ -877,7 +883,7 @@ msgstr ""
#: authentication/templates/authentication/_msg_oauth_bind.html:12 #: authentication/templates/authentication/_msg_oauth_bind.html:12
#: authentication/templates/authentication/_msg_rest_password_success.html:8 #: authentication/templates/authentication/_msg_rest_password_success.html:8
#: authentication/templates/authentication/_msg_rest_public_key_success.html:8 #: authentication/templates/authentication/_msg_rest_public_key_success.html:8
#: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:61 #: settings/serializers/terminal.py:10 terminal/serializers/endpoint.py:62
msgid "IP" msgid "IP"
msgstr "IP" msgstr "IP"
@ -902,7 +908,7 @@ msgstr "应用程序"
msgid "Can match application" msgid "Can match application"
msgstr "匹配应用" msgstr "匹配应用"
#: assets/api/asset/asset.py:143 #: assets/api/asset/asset.py:147
msgid "Cannot create asset directly, you should create a host or other" msgid "Cannot create asset directly, you should create a host or other"
msgstr "不能直接创建资产, 你应该创建主机或其他资产" msgstr "不能直接创建资产, 你应该创建主机或其他资产"
@ -1052,7 +1058,7 @@ msgid "Basic"
msgstr "基本" msgstr "基本"
#: assets/const/web.py:61 assets/models/asset/web.py:13 #: assets/const/web.py:61 assets/models/asset/web.py:13
#: assets/serializers/asset/common.py:123 assets/serializers/platform.py:40 #: assets/serializers/asset/common.py:123 assets/serializers/platform.py:39
msgid "Script" msgid "Script"
msgstr "脚本" msgstr "脚本"
@ -1188,7 +1194,7 @@ msgstr "地址"
#: assets/models/asset/common.py:104 assets/models/platform.py:112 #: assets/models/asset/common.py:104 assets/models/platform.py:112
#: authentication/serializers/connect_token_secret.py:108 #: authentication/serializers/connect_token_secret.py:108
#: perms/serializers/user_permission.py:24 #: perms/serializers/user_permission.py:24
#: xpack/plugins/cloud/serializers/account_attrs.py:187 #: xpack/plugins/cloud/serializers/account_attrs.py:197
msgid "Platform" msgid "Platform"
msgstr "系统平台" msgstr "系统平台"
@ -1202,6 +1208,10 @@ msgstr "网域"
msgid "Labels" msgid "Labels"
msgstr "标签管理" msgstr "标签管理"
#: assets/models/asset/common.py:111 assets/serializers/asset/host.py:27
msgid "Info"
msgstr "信息"
#: assets/models/asset/common.py:283 #: assets/models/asset/common.py:283
msgid "Can refresh asset hardware info" msgid "Can refresh asset hardware info"
msgstr "可以更新资产硬件信息" msgstr "可以更新资产硬件信息"
@ -1239,27 +1249,27 @@ msgstr "客户端密钥"
msgid "Allow invalid cert" msgid "Allow invalid cert"
msgstr "忽略证书校验" msgstr "忽略证书校验"
#: assets/models/asset/web.py:9 assets/serializers/platform.py:30 #: assets/models/asset/web.py:9 assets/serializers/platform.py:29
msgid "Autofill" msgid "Autofill"
msgstr "自动代填" msgstr "自动代填"
#: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120 #: assets/models/asset/web.py:10 assets/serializers/asset/common.py:120
#: assets/serializers/platform.py:32 #: assets/serializers/platform.py:31
msgid "Username selector" msgid "Username selector"
msgstr "用户名选择器" msgstr "用户名选择器"
#: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121 #: assets/models/asset/web.py:11 assets/serializers/asset/common.py:121
#: assets/serializers/platform.py:35 #: assets/serializers/platform.py:34
msgid "Password selector" msgid "Password selector"
msgstr "密码选择器" msgstr "密码选择器"
#: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122 #: assets/models/asset/web.py:12 assets/serializers/asset/common.py:122
#: assets/serializers/platform.py:38 #: assets/serializers/platform.py:37
msgid "Submit selector" msgid "Submit selector"
msgstr "确认按钮选择器" msgstr "确认按钮选择器"
#: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38 #: assets/models/automations/base.py:17 assets/models/cmd_filter.py:38
#: assets/serializers/asset/common.py:300 rbac/tree.py:35 #: assets/serializers/asset/common.py:302 rbac/tree.py:35
msgid "Accounts" msgid "Accounts"
msgstr "账号管理" msgstr "账号管理"
@ -1299,7 +1309,7 @@ msgid "Date verified"
msgstr "校验日期" msgstr "校验日期"
#: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61 #: assets/models/cmd_filter.py:28 perms/models/asset_permission.py:61
#: perms/serializers/permission.py:33 users/models/group.py:25 #: perms/serializers/permission.py:32 users/models/group.py:25
#: users/models/user.py:723 #: users/models/user.py:723
msgid "User group" msgid "User group"
msgstr "用户组" msgstr "用户组"
@ -1388,7 +1398,7 @@ msgstr "全称"
msgid "Parent key" msgid "Parent key"
msgstr "ssh私钥" msgstr "ssh私钥"
#: assets/models/node.py:558 perms/serializers/permission.py:36 #: assets/models/node.py:558 perms/serializers/permission.py:35
#: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:96 #: tickets/models/ticket/apply_asset.py:14 xpack/plugins/cloud/models.py:96
msgid "Node" msgid "Node"
msgstr "节点" msgstr "节点"
@ -1415,45 +1425,45 @@ msgstr "启用"
msgid "Ansible config" msgid "Ansible config"
msgstr "Ansible 配置" msgstr "Ansible 配置"
#: assets/models/platform.py:44 assets/serializers/platform.py:61 #: assets/models/platform.py:44 assets/serializers/platform.py:60
msgid "Ping enabled" msgid "Ping enabled"
msgstr "启用资产探活" msgstr "启用资产探活"
#: assets/models/platform.py:45 assets/serializers/platform.py:62 #: assets/models/platform.py:45 assets/serializers/platform.py:61
msgid "Ping method" msgid "Ping method"
msgstr "资产探活方式" msgstr "资产探活方式"
#: assets/models/platform.py:46 assets/models/platform.py:59 #: assets/models/platform.py:46 assets/models/platform.py:59
#: assets/serializers/platform.py:63 #: assets/serializers/platform.py:62
msgid "Gather facts enabled" msgid "Gather facts enabled"
msgstr "启用收集资产信息" msgstr "启用收集资产信息"
#: assets/models/platform.py:47 assets/models/platform.py:61 #: assets/models/platform.py:47 assets/models/platform.py:61
#: assets/serializers/platform.py:64 #: assets/serializers/platform.py:63
msgid "Gather facts method" msgid "Gather facts method"
msgstr "收集信息方式" msgstr "收集信息方式"
#: assets/models/platform.py:48 assets/serializers/platform.py:67 #: assets/models/platform.py:48 assets/serializers/platform.py:66
msgid "Change secret enabled" msgid "Change secret enabled"
msgstr "启用改密" msgstr "启用改密"
#: assets/models/platform.py:50 assets/serializers/platform.py:68 #: assets/models/platform.py:50 assets/serializers/platform.py:67
msgid "Change secret method" msgid "Change secret method"
msgstr "改密方式" msgstr "改密方式"
#: assets/models/platform.py:52 assets/serializers/platform.py:69 #: assets/models/platform.py:52 assets/serializers/platform.py:68
msgid "Push account enabled" msgid "Push account enabled"
msgstr "启用账号推送" msgstr "启用账号推送"
#: assets/models/platform.py:54 assets/serializers/platform.py:70 #: assets/models/platform.py:54 assets/serializers/platform.py:69
msgid "Push account method" msgid "Push account method"
msgstr "账号推送方式" msgstr "账号推送方式"
#: assets/models/platform.py:56 assets/serializers/platform.py:65 #: assets/models/platform.py:56 assets/serializers/platform.py:64
msgid "Verify account enabled" msgid "Verify account enabled"
msgstr "开启账号验证" msgstr "开启账号验证"
#: assets/models/platform.py:58 assets/serializers/platform.py:66 #: assets/models/platform.py:58 assets/serializers/platform.py:65
msgid "Verify account method" msgid "Verify account method"
msgstr "账号验证方式" msgstr "账号验证方式"
@ -1465,23 +1475,23 @@ msgstr "元数据"
msgid "Internal" msgid "Internal"
msgstr "内置" msgstr "内置"
#: assets/models/platform.py:83 assets/serializers/platform.py:91 #: assets/models/platform.py:83 assets/serializers/platform.py:90
msgid "Charset" msgid "Charset"
msgstr "编码" msgstr "编码"
#: assets/models/platform.py:85 assets/serializers/platform.py:119 #: assets/models/platform.py:85 assets/serializers/platform.py:118
msgid "Domain enabled" msgid "Domain enabled"
msgstr "启用网域" msgstr "启用网域"
#: assets/models/platform.py:87 assets/serializers/platform.py:118 #: assets/models/platform.py:87 assets/serializers/platform.py:117
msgid "Su enabled" msgid "Su enabled"
msgstr "启用账号切换" msgstr "启用账号切换"
#: assets/models/platform.py:88 assets/serializers/platform.py:101 #: assets/models/platform.py:88 assets/serializers/platform.py:100
msgid "Su method" msgid "Su method"
msgstr "账号切换方式" msgstr "账号切换方式"
#: assets/models/platform.py:90 assets/serializers/platform.py:98 #: assets/models/platform.py:90 assets/serializers/platform.py:97
msgid "Automation" msgid "Automation"
msgstr "自动化" msgstr "自动化"
@ -1490,11 +1500,17 @@ msgstr "自动化"
msgid "%(value)s is not an even number" msgid "%(value)s is not an even number"
msgstr "%(value)s is not an even number" msgstr "%(value)s is not an even number"
#: assets/notifications.py:12
msgid ""
"Batch update platform in assets, skipping assets that do not meet platform "
"type"
msgstr "资产中批量更新平台,不符合平台类型跳过的资产"
#: assets/serializers/asset/common.py:119 #: assets/serializers/asset/common.py:119
msgid "Auto fill" msgid "Auto fill"
msgstr "自动代填" msgstr "自动代填"
#: assets/serializers/asset/common.py:130 assets/serializers/platform.py:96 #: assets/serializers/asset/common.py:130 assets/serializers/platform.py:95
#: authentication/serializers/connect_token_secret.py:28 #: authentication/serializers/connect_token_secret.py:28
#: authentication/serializers/connect_token_secret.py:66 #: authentication/serializers/connect_token_secret.py:66
#: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99 #: perms/serializers/user_permission.py:25 xpack/plugins/cloud/models.py:99
@ -1507,19 +1523,19 @@ msgid "Node path"
msgstr "节点路径" msgstr "节点路径"
#: assets/serializers/asset/common.py:150 #: assets/serializers/asset/common.py:150
#: assets/serializers/asset/common.py:302 #: assets/serializers/asset/common.py:304
msgid "Auto info" msgid "Auto info"
msgstr "自动化信息" msgstr "自动化信息"
#: assets/serializers/asset/common.py:226 #: assets/serializers/asset/common.py:228
msgid "Platform not exist" msgid "Platform not exist"
msgstr "平台不存在" msgstr "平台不存在"
#: assets/serializers/asset/common.py:261 #: assets/serializers/asset/common.py:263
msgid "port out of range (1-65535)" msgid "port out of range (1-65535)"
msgstr "端口超出范围 (1-65535)" msgstr "端口超出范围 (1-65535)"
#: assets/serializers/asset/common.py:268 #: assets/serializers/asset/common.py:270
msgid "Protocol is required: {}" msgid "Protocol is required: {}"
msgstr "协议是必填的: {}" msgstr "协议是必填的: {}"
@ -1580,10 +1596,6 @@ msgstr "系统版本"
msgid "OS arch" msgid "OS arch"
msgstr "系统架构" msgstr "系统架构"
#: assets/serializers/asset/host.py:27
msgid "Info"
msgstr "信息"
#: assets/serializers/cagegory.py:9 #: assets/serializers/cagegory.py:9
msgid "Constraints" msgid "Constraints"
msgstr "约束" msgstr "约束"
@ -1612,31 +1624,31 @@ msgstr "不能包含: /"
msgid "The same level node name cannot be the same" msgid "The same level node name cannot be the same"
msgstr "同级别节点名字不能重复" msgstr "同级别节点名字不能重复"
#: assets/serializers/platform.py:26 #: assets/serializers/platform.py:25
msgid "SFTP enabled" msgid "SFTP enabled"
msgstr "SFTP 已启用" msgstr "SFTP 已启用"
#: assets/serializers/platform.py:27 #: assets/serializers/platform.py:26
msgid "SFTP home" msgid "SFTP home"
msgstr "SFTP 根路径" msgstr "SFTP 根路径"
#: assets/serializers/platform.py:43 #: assets/serializers/platform.py:42
msgid "Auth with username" msgid "Auth with username"
msgstr "使用用户名认证" msgstr "使用用户名认证"
#: assets/serializers/platform.py:71 #: assets/serializers/platform.py:70
msgid "Gather accounts enabled" msgid "Gather accounts enabled"
msgstr "启用账号收集" msgstr "启用账号收集"
#: assets/serializers/platform.py:72 #: assets/serializers/platform.py:71
msgid "Gather accounts method" msgid "Gather accounts method"
msgstr "收集账号方式" msgstr "收集账号方式"
#: assets/serializers/platform.py:78 #: assets/serializers/platform.py:77
msgid "Primary" msgid "Primary"
msgstr "主要的" msgstr "主要的"
#: assets/serializers/platform.py:120 #: assets/serializers/platform.py:119
msgid "Default Domain" msgid "Default Domain"
msgstr "默认网域" msgstr "默认网域"
@ -2472,15 +2484,15 @@ msgid "Ticket info"
msgstr "工单信息" msgstr "工单信息"
#: authentication/serializers/connection_token.py:20 #: authentication/serializers/connection_token.py:20
#: perms/models/asset_permission.py:71 perms/serializers/permission.py:37 #: perms/models/asset_permission.py:71 perms/serializers/permission.py:36
#: perms/serializers/permission.py:70 #: perms/serializers/permission.py:69
#: tickets/models/ticket/apply_application.py:28 #: tickets/models/ticket/apply_application.py:28
#: tickets/models/ticket/apply_asset.py:18 #: tickets/models/ticket/apply_asset.py:18
msgid "Actions" msgid "Actions"
msgstr "动作" msgstr "动作"
#: authentication/serializers/connection_token.py:41 #: authentication/serializers/connection_token.py:41
#: perms/serializers/permission.py:39 perms/serializers/permission.py:71 #: perms/serializers/permission.py:38 perms/serializers/permission.py:70
#: users/serializers/user.py:93 users/serializers/user.py:165 #: users/serializers/user.py:93 users/serializers/user.py:165
msgid "Is expired" msgid "Is expired"
msgstr "已过期" msgstr "已过期"
@ -2500,8 +2512,8 @@ msgstr "邮箱"
msgid "The {} cannot be empty" msgid "The {} cannot be empty"
msgstr "{} 不能为空" msgstr "{} 不能为空"
#: authentication/serializers/token.py:79 perms/serializers/permission.py:38 #: authentication/serializers/token.py:79 perms/serializers/permission.py:37
#: perms/serializers/permission.py:72 users/serializers/user.py:94 #: perms/serializers/permission.py:71 users/serializers/user.py:94
#: users/serializers/user.py:163 #: users/serializers/user.py:163
msgid "Is valid" msgid "Is valid"
msgstr "是否有效" msgstr "是否有效"
@ -2522,11 +2534,6 @@ msgstr "使用api key签名请求头每个请求的头部是不一样的"
msgid "docs" msgid "docs"
msgstr "文档" msgstr "文档"
#: authentication/templates/authentication/_access_key_modal.html:33
#: terminal/notifications.py:98 terminal/notifications.py:146
msgid "Date"
msgstr "日期"
#: authentication/templates/authentication/_access_key_modal.html:48 #: authentication/templates/authentication/_access_key_modal.html:48
msgid "Show" msgid "Show"
msgstr "显示" msgstr "显示"
@ -2961,7 +2968,7 @@ msgstr "组织 ID"
msgid "The file content overflowed (The maximum length `{}` bytes)" msgid "The file content overflowed (The maximum length `{}` bytes)"
msgstr "文件内容太大 (最大长度 `{}` 字节)" msgstr "文件内容太大 (最大长度 `{}` 字节)"
#: common/drf/parsers/base.py:189 #: common/drf/parsers/base.py:193
msgid "Parse file error: {}" msgid "Parse file error: {}"
msgstr "解析文件错误: {}" msgstr "解析文件错误: {}"
@ -3207,11 +3214,11 @@ msgstr "发布站内消息"
msgid "No account available" msgid "No account available"
msgstr "无可用账号" msgstr "无可用账号"
#: ops/ansible/inventory.py:189 #: ops/ansible/inventory.py:196
msgid "Ansible disabled" msgid "Ansible disabled"
msgstr "Ansible 已禁用" msgstr "Ansible 已禁用"
#: ops/ansible/inventory.py:205 #: ops/ansible/inventory.py:212
msgid "Skip hosts below:" msgid "Skip hosts below:"
msgstr "跳过以下主机: " msgstr "跳过以下主机: "
@ -4404,7 +4411,7 @@ msgid "SSO auth key TTL"
msgstr "令牌有效期" msgstr "令牌有效期"
#: settings/serializers/auth/sso.py:17 #: settings/serializers/auth/sso.py:17
#: xpack/plugins/cloud/serializers/account_attrs.py:184 #: xpack/plugins/cloud/serializers/account_attrs.py:194
msgid "Unit: second" msgid "Unit: second"
msgstr "单位: 秒" msgstr "单位: 秒"
@ -5475,7 +5482,7 @@ msgid "Redis port"
msgstr "Redis 端口" msgstr "Redis 端口"
#: terminal/models/component/endpoint.py:29 #: terminal/models/component/endpoint.py:29
#: terminal/models/component/endpoint.py:98 terminal/serializers/endpoint.py:64 #: terminal/models/component/endpoint.py:98 terminal/serializers/endpoint.py:66
#: terminal/serializers/storage.py:38 terminal/serializers/storage.py:50 #: terminal/serializers/storage.py:38 terminal/serializers/storage.py:50
#: terminal/serializers/storage.py:80 terminal/serializers/storage.py:90 #: terminal/serializers/storage.py:80 terminal/serializers/storage.py:90
#: terminal/serializers/storage.py:98 #: terminal/serializers/storage.py:98
@ -5737,15 +5744,15 @@ msgstr "账号"
msgid "Timestamp" msgid "Timestamp"
msgstr "时间戳" msgstr "时间戳"
#: terminal/serializers/endpoint.py:14 #: terminal/serializers/endpoint.py:15
msgid "Oracle port" msgid "Oracle port"
msgstr "Oracle 端口" msgstr "Oracle 端口"
#: terminal/serializers/endpoint.py:17 #: terminal/serializers/endpoint.py:18
msgid "Oracle port range" msgid "Oracle port range"
msgstr "Oracle 端口范围" msgstr "Oracle 端口范围"
#: terminal/serializers/endpoint.py:19 #: terminal/serializers/endpoint.py:20
msgid "" msgid ""
"Oracle proxy server listen port is dynamic, Each additional Oracle database " "Oracle proxy server listen port is dynamic, Each additional Oracle database "
"instance adds a port listener" "instance adds a port listener"
@ -5753,11 +5760,11 @@ msgstr ""
"Oracle 代理服务器监听端口是动态的,每增加一个 Oracle 数据库实例,就会增加一个" "Oracle 代理服务器监听端口是动态的,每增加一个 Oracle 数据库实例,就会增加一个"
"端口监听" "端口监听"
#: terminal/serializers/endpoint.py:35 #: terminal/serializers/endpoint.py:36
msgid "Visit IP/Host, if empty, use the current request instead" msgid "Visit IP/Host, if empty, use the current request instead"
msgstr "访问IP/Host如果为空则使用当前请求的地址代替" msgstr "访问IP/Host如果为空则使用当前请求的地址代替"
#: terminal/serializers/endpoint.py:58 #: terminal/serializers/endpoint.py:59
msgid "" msgid ""
"If asset IP addresses under different endpoints conflict, use asset labels" "If asset IP addresses under different endpoints conflict, use asset labels"
msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现" msgstr "如果不同端点下的资产 IP 有冲突,使用资产标签实现"
@ -7224,13 +7231,13 @@ msgstr "JSON 格式的文件"
msgid "IP address invalid `{}`, {}" msgid "IP address invalid `{}`, {}"
msgstr "IP 地址无效: `{}`, {}" msgstr "IP 地址无效: `{}`, {}"
#: xpack/plugins/cloud/serializers/account_attrs.py:162 #: xpack/plugins/cloud/serializers/account_attrs.py:172
msgid "" msgid ""
"Format for comma-delimited string,Such as: 192.168.1.0/24, " "Format for comma-delimited string,Such as: 192.168.1.0/24, "
"10.0.0.0-10.0.0.255" "10.0.0.0-10.0.0.255"
msgstr "格式为逗号分隔的字符串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:166 #: xpack/plugins/cloud/serializers/account_attrs.py:176
msgid "" msgid ""
"The port is used to detect the validity of the IP address. When the " "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 " "synchronization task is executed, only the valid IP address will be "
@ -7239,19 +7246,19 @@ msgstr ""
"端口用来检测 IP 地址的有效性,在同步任务执行时,只会同步有效的 IP 地址。 <br>" "端口用来检测 IP 地址的有效性,在同步任务执行时,只会同步有效的 IP 地址。 <br>"
"如果端口为 0则表示所有 IP 地址均有效。" "如果端口为 0则表示所有 IP 地址均有效。"
#: xpack/plugins/cloud/serializers/account_attrs.py:174 #: xpack/plugins/cloud/serializers/account_attrs.py:184
msgid "Hostname prefix" msgid "Hostname prefix"
msgstr "主机名前缀" msgstr "主机名前缀"
#: xpack/plugins/cloud/serializers/account_attrs.py:177 #: xpack/plugins/cloud/serializers/account_attrs.py:187
msgid "IP segment" msgid "IP segment"
msgstr "IP 网段" msgstr "IP 网段"
#: xpack/plugins/cloud/serializers/account_attrs.py:181 #: xpack/plugins/cloud/serializers/account_attrs.py:191
msgid "Test port" msgid "Test port"
msgstr "测试端口" msgstr "测试端口"
#: xpack/plugins/cloud/serializers/account_attrs.py:184 #: xpack/plugins/cloud/serializers/account_attrs.py:194
msgid "Test timeout" msgid "Test timeout"
msgstr "测试超时时间" msgstr "测试超时时间"
@ -7331,23 +7338,23 @@ msgstr "许可证导入成功"
msgid "License is invalid" msgid "License is invalid"
msgstr "无效的许可证" msgstr "无效的许可证"
#: xpack/plugins/license/meta.py:11 xpack/plugins/license/models.py:135 #: xpack/plugins/license/meta.py:11 xpack/plugins/license/models.py:138
msgid "License" msgid "License"
msgstr "许可证" msgstr "许可证"
#: xpack/plugins/license/models.py:79 #: xpack/plugins/license/models.py:80
msgid "Standard edition" msgid "Standard edition"
msgstr "标准版" msgstr "标准版"
#: xpack/plugins/license/models.py:81 #: xpack/plugins/license/models.py:82
msgid "Enterprise edition" msgid "Enterprise edition"
msgstr "企业版" msgstr "企业版"
#: xpack/plugins/license/models.py:83 #: xpack/plugins/license/models.py:84
msgid "Ultimate edition" msgid "Ultimate edition"
msgstr "旗舰版" msgstr "旗舰版"
#: xpack/plugins/license/models.py:85 #: xpack/plugins/license/models.py:86
msgid "Community edition" msgid "Community edition"
msgstr "社区版" msgstr "社区版"