From 42f297e6c4585deb083e0989c1d183339448c55a Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 14 Mar 2018 13:13:32 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=9B=B4=E6=96=B0=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/node.py | 5 +- apps/assets/forms/asset.py | 8 +- apps/assets/tasks.py | 30 ++-- apps/i18n/zh/LC_MESSAGES/django.mo | Bin 30169 -> 29828 bytes apps/i18n/zh/LC_MESSAGES/django.po | 149 +++++++++++------- apps/terminal/forms.py | 10 +- .../templates/terminal/terminal_list.html | 12 +- .../terminal/terminal_modal_accept.html | 4 +- .../templates/terminal/terminal_update.html | 4 +- 9 files changed, 137 insertions(+), 85 deletions(-) diff --git a/apps/assets/api/node.py b/apps/assets/api/node.py index 3c6ff292d..9c002b271 100644 --- a/apps/assets/api/node.py +++ b/apps/assets/api/node.py @@ -130,7 +130,8 @@ class RefreshNodeHardwareInfoApi(APIView): node_id = kwargs.get('pk') node = get_object_or_404(self.model, id=node_id) assets = node.assets.all() - task_name = _("Refresh node assets hardware info: {}".format(node.name)) + # task_name = _("Refresh node assets hardware info: {}".format(node.name)) + task_name = _("更新节点资产硬件信息: {}".format(node.name)) update_assets_hardware_info_util.delay(assets, task_name=task_name) return Response({"msg": "Task created"}) @@ -143,7 +144,7 @@ class TestNodeConnectiveApi(APIView): node_id = kwargs.get('pk') node = get_object_or_404(self.model, id=node_id) assets = node.assets.all() - task_name = _("Test node assets connective: {}".format(node.name)) + task_name = _("测试节点下资产是否可连接: {}".format(node.name)) test_asset_connectability_util.delay(assets, task_name=task_name) return Response({"msg": "Task created"}) diff --git a/apps/assets/forms/asset.py b/apps/assets/forms/asset.py index ce3e3fb56..d5f4ccd04 100644 --- a/apps/assets/forms/asset.py +++ b/apps/assets/forms/asset.py @@ -38,7 +38,8 @@ class AssetCreateForm(forms.ModelForm): 'Admin user is a privilege user exist on this asset,' 'Example: root or other NOPASSWD sudo privilege user' 'If asset not support ansible, set any one' - ) + ), + 'platform': _("* required Must set exact system platform, Windows, Linux ...") } @@ -70,7 +71,8 @@ class AssetUpdateForm(forms.ModelForm): 'Admin user is a privilege user exist on this asset,' 'Example: root or other NOPASSWD sudo privilege user' 'If asset not support ansible, set any one' - ) + ), + 'platform': _("* required Must set exact system platform, Windows, Linux ...") } @@ -102,7 +104,7 @@ class AssetBulkUpdateForm(forms.ModelForm): class Meta: model = Asset fields = [ - 'assets', 'port', 'admin_user', 'labels', 'nodes', + 'assets', 'port', 'admin_user', 'labels', 'nodes', 'platform' ] widgets = { 'labels': forms.SelectMultiple( diff --git a/apps/assets/tasks.py b/apps/assets/tasks.py index a6ffd2270..0cf5cbfd8 100644 --- a/apps/assets/tasks.py +++ b/apps/assets/tasks.py @@ -91,7 +91,8 @@ def update_assets_hardware_info_util(assets, task_name=None): """ from ops.utils import update_or_create_ansible_task if task_name is None: - task_name = _("Update some assets hardware info") + # task_name = _("Update some assets hardware info") + task_name = _("更新资产硬件信息") tasks = const.UPDATE_ASSETS_HARDWARE_TASKS hostname_list = [asset.hostname for asset in assets if asset.is_active and asset.is_unixlike()] task, created = update_or_create_ansible_task( @@ -107,7 +108,8 @@ def update_assets_hardware_info_util(assets, task_name=None): @shared_task def update_asset_hardware_info_manual(asset): - task_name = _("Update asset hardware info") + # task_name = _("Update asset hardware info") + task_name = _("更新资产硬件信息") return update_assets_hardware_info_util([asset], task_name=task_name) @@ -125,7 +127,8 @@ def update_assets_hardware_info_period(): return from ops.utils import update_or_create_ansible_task - task_name = _("Update assets hardware info period") + # task_name = _("Update assets hardware info period") + task_name = _("定期更新资产硬件信息") hostname_list = [ asset.hostname for asset in Asset.objects.all() if asset.is_active and asset.is_unixlike() @@ -202,13 +205,15 @@ def test_admin_user_connectability_period(): admin_users = AdminUser.objects.all() for admin_user in admin_users: - task_name = _("Test admin user connectability period: {}".format(admin_user.name)) + # task_name = _("Test admin user connectability period: {}".format(admin_user.name)) + task_name = _("定期测试管理账号可连接性: {}".format(admin_user.name)) test_admin_user_connectability_util(admin_user, task_name) @shared_task def test_admin_user_connectability_manual(admin_user): - task_name = _("Test admin user connectability: {}").format(admin_user.name) + # task_name = _("Test admin user connectability: {}").format(admin_user.name) + task_name = _("测试管理行号可连接性: {}").format(admin_user.name) return test_admin_user_connectability_util.delay(admin_user, task_name) @@ -217,8 +222,9 @@ def test_asset_connectability_util(assets, task_name=None): from ops.utils import update_or_create_ansible_task if task_name is None: - task_name = _("Test assets connectability") - hosts = [asset.hostname for asset in assets] + # task_name = _("Test assets connectability") + task_name = _("测试资产可连接性") + hosts = [asset.hostname for asset in assets if asset.is_active and asset.is_unixlike()] if not hosts: logger.info("No hosts, passed") return {} @@ -302,7 +308,8 @@ def test_system_user_connectability_period(): system_users = SystemUser.objects.all() for system_user in system_users: - task_name = _("test system user connectability period: {}".format(system_user)) + # task_name = _("Test system user connectability period: {}".format(system_user)) + task_name = _("定期测试系统用户可连接性: {}".format(system_user)) test_system_user_connectability_util(system_user, task_name) @@ -379,7 +386,9 @@ def push_system_user_util(system_users, assets, task_name): def get_node_push_system_user_task_name(system_user, node): - return _("Push system user to node: {} => {}").format( + + # return _("Push system user to node: {} => {}").format( + return _("推送系统用户到节点资产: {} => {}").format( system_user.name, node.value ) @@ -417,7 +426,8 @@ def push_node_system_users_to_asset(node, assets): system_users.extend(list(n.systemuser_set.all())) if system_users: - task_name = _("Push system users to node: {}").format(node.value) + # task_name = _("Push system users to node: {}").format(node.value) + task_name = _("推送节点系统用户到新加入资产中: {}").format(node.value) push_system_user_util.delay(system_users, assets, task_name) diff --git a/apps/i18n/zh/LC_MESSAGES/django.mo b/apps/i18n/zh/LC_MESSAGES/django.mo index 996977a184d1087ed00e5d229671baa2636795e2..c4e2c1b8a8747972183408204baee2015edaaffd 100644 GIT binary patch delta 11087 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 delta 11280 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 LO6H^{F=hS@a)8Qk diff --git a/apps/i18n/zh/LC_MESSAGES/django.po b/apps/i18n/zh/LC_MESSAGES/django.po index 229662dd1..dba1c58a5 100644 --- a/apps/i18n/zh/LC_MESSAGES/django.po +++ b/apps/i18n/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Jumpserver 0.3.3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-12 11:28+0800\n" +"POT-Creation-Date: 2018-03-14 13:07+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: ibuler \n" "Language-Team: Jumpserver team\n" @@ -21,15 +21,15 @@ msgstr "" msgid "New node {}" msgstr "新节点 {}" -#: assets/api/node.py:133 -msgid "Refresh node assets hardware info: {}" -msgstr "更新一些资产硬件信息: {}" +#: assets/api/node.py:134 +msgid "更新节点资产硬件信息: {}" +msgstr "" -#: assets/api/node.py:146 +#: assets/api/node.py:147 msgid "Test node assets connective: {}" msgstr "测试节点资产可连接性" -#: assets/forms/asset.py:23 assets/forms/asset.py:54 assets/forms/user.py:125 +#: assets/forms/asset.py:23 assets/forms/asset.py:55 assets/forms/user.py:125 #: assets/models/asset.py:53 assets/models/user.py:218 #: assets/templates/assets/asset_detail.html:181 #: assets/templates/assets/asset_detail.html:189 @@ -37,34 +37,38 @@ msgstr "测试节点资产可连接性" msgid "Nodes" msgstr "节点管理" -#: assets/forms/asset.py:26 assets/forms/asset.py:57 assets/forms/asset.py:93 -#: assets/forms/asset.py:97 assets/models/asset.py:57 +#: assets/forms/asset.py:26 assets/forms/asset.py:58 assets/forms/asset.py:95 +#: assets/forms/asset.py:99 assets/models/asset.py:57 #: assets/models/cluster.py:19 assets/models/user.py:187 #: assets/templates/assets/asset_detail.html:73 templates/_nav.html:24 msgid "Admin user" msgstr "管理用户" -#: assets/forms/asset.py:29 assets/forms/asset.py:60 assets/models/asset.py:81 +#: assets/forms/asset.py:29 assets/forms/asset.py:61 assets/models/asset.py:81 #: assets/templates/assets/asset_create.html:32 #: assets/templates/assets/asset_detail.html:218 #: assets/templates/assets/asset_update.html:37 templates/_nav.html:26 msgid "Labels" msgstr "标签管理" -#: assets/forms/asset.py:38 assets/forms/asset.py:70 +#: assets/forms/asset.py:38 assets/forms/asset.py:71 msgid "" "Admin user is a privilege user exist on this asset,Example: root or other " "NOPASSWD sudo privilege userIf asset not support ansible, set any one" msgstr "" "管理用户是资产上已经存在的特权用户,如 root或者其它有NOPASSWD的用户, 如果资产" -"不支持ansible, 任意设置一个即可" +"是Windows或交换机, 任意设置一个即可" -#: assets/forms/asset.py:80 assets/forms/asset.py:84 assets/forms/label.py:15 +#: assets/forms/asset.py:42 assets/forms/asset.py:75 +msgid "* required Must set exact system platform, Windows, Linux ..." +msgstr "* required 必须准确设置操作系统平台,如Windows, Linux ..." + +#: assets/forms/asset.py:82 assets/forms/asset.py:86 assets/forms/label.py:15 #: perms/templates/perms/asset_permission_asset.html:88 users/forms.py:244 msgid "Select assets" msgstr "选择资产" -#: assets/forms/asset.py:89 assets/models/asset.py:52 +#: assets/forms/asset.py:91 assets/models/asset.py:52 #: assets/templates/assets/admin_user_assets.html:53 #: assets/templates/assets/asset_detail.html:69 #: assets/templates/assets/system_user_asset.html:51 @@ -72,11 +76,11 @@ msgstr "选择资产" msgid "Port" msgstr "端口" -#: assets/forms/asset.py:109 assets/templates/assets/asset_create.html:36 +#: assets/forms/asset.py:111 assets/templates/assets/asset_create.html:36 msgid "Select labels" msgstr "选择标签" -#: assets/forms/asset.py:112 assets/templates/assets/admin_user_detail.html:91 +#: assets/forms/asset.py:114 assets/templates/assets/admin_user_detail.html:91 msgid "Select nodes" msgstr "选择节点" @@ -432,47 +436,41 @@ msgstr "系统用户" msgid "%(value)s is not an even number" msgstr "%(value)s is not an even number" -#: assets/tasks.py:94 -msgid "Update some assets hardware info" -msgstr "更新一些资产硬件信息" +#: assets/tasks.py:95 assets/tasks.py:112 +msgid "更新资产硬件信息" +msgstr "" -#: assets/tasks.py:110 -msgid "Update asset hardware info" -msgstr "更新资产硬件信息" +#: assets/tasks.py:131 +msgid "定期更新资产硬件信息" +msgstr "" -#: assets/tasks.py:128 -msgid "Update assets hardware info period" -msgstr "定期更新资产硬件信息" +#: assets/tasks.py:209 +msgid "定期测试管理账号可连接性: {}" +msgstr "" -#: assets/tasks.py:205 -msgid "Test admin user connectability period: {}" -msgstr "定期测试管理用户可连接性: {}" +#: assets/tasks.py:216 +msgid "测试管理行号可连接性: {}" +msgstr "" -#: assets/tasks.py:211 -msgid "Test admin user connectability: {}" -msgstr "测试管理用户可连接性: {}" +#: assets/tasks.py:226 +msgid "测试资产可连接性" +msgstr "" -#: assets/tasks.py:220 -#, fuzzy -#| msgid "Test asset connectability" -msgid "Test assets connectability" -msgstr "测试资产可连接性" - -#: assets/tasks.py:290 +#: assets/tasks.py:296 msgid "Test system user connectability: {}" msgstr "测试系统用户可连接性: {}" -#: assets/tasks.py:305 -msgid "test system user connectability period: {}" -msgstr "测试系统用户可连接性: {}" +#: assets/tasks.py:312 +msgid "定期测试系统用户可连接性: {}" +msgstr "" -#: assets/tasks.py:382 -msgid "Push system user to node: {} => {}" -msgstr "推送系统用户到节点: {}->{}" +#: assets/tasks.py:391 +msgid "推送系统用户到节点资产: {} => {}" +msgstr "" -#: assets/tasks.py:420 -msgid "Push system users to node: {}" -msgstr "推送系统用户到节点: {}" +#: assets/tasks.py:430 +msgid "推送节点系统用户到新加入资产中: {}" +msgstr "" #: assets/templates/assets/_asset_group_bulk_update_modal.html:5 msgid "Update asset group" @@ -1229,7 +1227,7 @@ msgid "" msgstr "设置终端命令存储,default是默认用的存储方式" #: common/forms.py:165 common/templates/common/terminal_setting.html:81 -#: terminal/forms.py:34 terminal/models.py:21 +#: terminal/forms.py:35 terminal/models.py:21 msgid "Replay storage" msgstr "录像存储" @@ -1833,13 +1831,18 @@ msgstr "输出" msgid "Session" msgstr "会话" -#: terminal/forms.py:44 -msgid "Coco ssh listen port" -msgstr "SSH 监听端口" +#: terminal/forms.py:31 +msgid "Command can store in server db or ES, default to server, more see docs" +msgstr "" +"命令支持存储到服务器端数据库、ES中,默认存储的服务器端数据库,更多查看文档" -#: terminal/forms.py:45 -msgid "Coco http/ws listen port" -msgstr "Http/Websocket 监听端口" +#: terminal/forms.py:36 +msgid "" +"Replay file can store in server disk, AWS S3, Aliyun OSS, default to server, " +"more see docs" +msgstr "" +"录像文件支持存储到服务器端硬盘、AWS S3、 阿里云 OSS 中,默认存储到服务器端硬" +"盘, 更多查看文档" #: terminal/models.py:17 msgid "Remote Address" @@ -1966,12 +1969,10 @@ msgid "Terminal detail" msgstr "终端详情" #: terminal/templates/terminal/terminal_detail.html:51 -#: terminal/templates/terminal/terminal_list.html:31 msgid "SSH port" msgstr "SSH端口" #: terminal/templates/terminal/terminal_detail.html:55 -#: terminal/templates/terminal/terminal_list.html:32 msgid "Http port" msgstr "HTTP端口" @@ -2667,5 +2668,43 @@ msgstr "密码更新" msgid "Public key update" msgstr "密钥更新" +#~ msgid "Refresh node assets hardware info: {}" +#~ msgstr "更新一些资产硬件信息: {}" + +#~ msgid "Update some assets hardware info" +#~ msgstr "更新一些资产硬件信息" + +#~ msgid "Update asset hardware info" +#~ msgstr "更新资产硬件信息" + +#~ msgid "Update assets hardware info period" +#~ msgstr "定期更新资产硬件信息" + +#~ msgid "Test admin user connectability period: {}" +#~ msgstr "定期测试管理用户可连接性: {}" + +#~ msgid "Test admin user connectability: {}" +#~ msgstr "测试管理用户可连接性: {}" + +#, fuzzy +#~| msgid "Test asset connectability" +#~ msgid "Test assets connectability" +#~ msgstr "测试资产可连接性" + +#~ msgid "Test system user connectability period: {}" +#~ msgstr "测试系统用户可连接性: {}" + +#~ msgid "Push system user to node: {} => {}" +#~ msgstr "推送系统用户到节点: {}->{}" + +#~ msgid "Push system users to node: {}" +#~ msgstr "推送系统用户到节点: {}" + +#~ msgid "Coco ssh listen port" +#~ msgstr "SSH 监听端口" + +#~ msgid "Coco http/ws listen port" +#~ msgstr "Http/Websocket 监听端口" + #~ msgid "Create asset permission " #~ msgstr "创建资产权限" diff --git a/apps/terminal/forms.py b/apps/terminal/forms.py index ab4520b03..dbba3cb01 100644 --- a/apps/terminal/forms.py +++ b/apps/terminal/forms.py @@ -27,20 +27,20 @@ def get_all_replay_storage(): class TerminalForm(forms.ModelForm): command_storage = forms.ChoiceField( choices=get_all_command_storage(), - label=_("Command storage") + label=_("Command storage"), + help_text=_("Command can store in server db or ES, default to server, more see docs"), ) replay_storage = forms.ChoiceField( choices=get_all_replay_storage(), - label=_("Replay storage") + label=_("Replay storage"), + help_text=_("Replay file can store in server disk, AWS S3, Aliyun OSS, default to server, more see docs"), ) class Meta: model = Terminal fields = [ - 'name', 'remote_addr', 'ssh_port', 'http_port', 'comment', + 'name', 'remote_addr', 'comment', 'command_storage', 'replay_storage', ] help_texts = { - 'ssh_port': _("Coco ssh listen port"), - 'http_port': _("Coco http/ws listen port"), } diff --git a/apps/terminal/templates/terminal/terminal_list.html b/apps/terminal/templates/terminal/terminal_list.html index a56843852..3039c0425 100644 --- a/apps/terminal/templates/terminal/terminal_list.html +++ b/apps/terminal/templates/terminal/terminal_list.html @@ -28,8 +28,8 @@ {% trans 'Name' %} {% trans 'Addr' %} - {% trans 'SSH port' %} - {% trans 'Http port' %} +{# {% trans 'SSH port' %}#} +{# {% trans 'Http port' %}#} {% trans 'Session' %} {% trans 'Active' %} {% trans 'Alive' %} @@ -53,21 +53,21 @@ function initTable() { var detail_btn = '' + cellData + ''; $(td).html(detail_btn.replace('{{ DEFAULT_PK }}', rowData.id)); }}, - {targets: 6, createdCell: function (td, cellData) { + {targets: 4, createdCell: function (td, cellData) { if (!cellData) { $(td).html('') } else { $(td).html('') } }}, - {targets: 7, createdCell: function (td, cellData) { + {targets: 5, createdCell: function (td, cellData) { if (!cellData) { $(td).html('') } else { $(td).html('') } }}, - {targets: 8, createdCell: function (td, cellData, rowData) { + {targets: 6, createdCell: function (td, cellData, rowData) { var update_btn = '{% trans "Update" %}' .replace('{{ DEFAULT_PK }}', cellData); var delete_btn = '{% trans "Delete" %}' @@ -88,7 +88,7 @@ function initTable() { }} ], ajax_url: '{% url "api-terminal:terminal-list" %}', - columns: [{data: function(){return ""}}, {data: "name" }, {data: "remote_addr" }, {data: "ssh_port"}, {data: "http_port"}, + columns: [{data: function(){return ""}}, {data: "name" }, {data: "remote_addr" }, {data: "session_online"}, {data: "is_active" }, {data: 'is_alive'}, {data: "id"}], op_html: $('#actions').html() }; diff --git a/apps/terminal/templates/terminal/terminal_modal_accept.html b/apps/terminal/templates/terminal/terminal_modal_accept.html index e846a63e1..ae81ff95e 100644 --- a/apps/terminal/templates/terminal/terminal_modal_accept.html +++ b/apps/terminal/templates/terminal/terminal_modal_accept.html @@ -10,8 +10,8 @@ {% bootstrap_field form.name layout="horizontal" %} {% bootstrap_field form.remote_addr layout="horizontal" %} - {% bootstrap_field form.ssh_port layout="horizontal" %} - {% bootstrap_field form.http_port layout="horizontal" %} +{# {% bootstrap_field form.ssh_port layout="horizontal" %}#} +{# {% bootstrap_field form.http_port layout="horizontal" %}#} {% bootstrap_field form.command_storage layout="horizontal" %} {% bootstrap_field form.replay_storage layout="horizontal" %} {% bootstrap_field form.comment layout="horizontal" %} diff --git a/apps/terminal/templates/terminal/terminal_update.html b/apps/terminal/templates/terminal/terminal_update.html index a40e3c362..bde86563d 100644 --- a/apps/terminal/templates/terminal/terminal_update.html +++ b/apps/terminal/templates/terminal/terminal_update.html @@ -33,8 +33,8 @@

{% trans 'Info' %}

{% bootstrap_field form.name layout="horizontal" %} {% bootstrap_field form.remote_addr layout="horizontal" %} - {% bootstrap_field form.ssh_port layout="horizontal" %} - {% bootstrap_field form.http_port layout="horizontal" %} +{# {% bootstrap_field form.ssh_port layout="horizontal" %}#} +{# {% bootstrap_field form.http_port layout="horizontal" %}#} {% bootstrap_field form.command_storage layout="horizontal" %} {% bootstrap_field form.replay_storage layout="horizontal" %}