diff --git a/apps/node_man/models.py b/apps/node_man/models.py index 7407b1327..d648c8e55 100644 --- a/apps/node_man/models.py +++ b/apps/node_man/models.py @@ -325,7 +325,7 @@ class Host(models.Model): bk_biz_id = models.IntegerField(_("业务ID"), db_index=True) bk_cloud_id = models.IntegerField(_("云区域ID"), db_index=True) bk_host_name = models.CharField(_("主机名称"), max_length=128, db_index=True, blank=True, null=True, default="") - bk_addressing = models.CharField(_("寻地方式"), max_length=16, default=constants.CmdbAddressingType.STATIC.value) + bk_addressing = models.CharField(_("寻址方式"), max_length=16, default=constants.CmdbAddressingType.STATIC.value) inner_ip = models.CharField(_("内网IP"), max_length=15, db_index=True) outer_ip = models.CharField(_("外网IP"), max_length=15, blank=True, null=True, default="") diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo index e10035ab4..6c2010507 100644 Binary files a/locale/en/LC_MESSAGES/django.mo and b/locale/en/LC_MESSAGES/django.mo differ diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 92580f7d0..0ea556e1b 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-15 00:46+0800\n" +"POT-Creation-Date: 2023-01-12 10:46+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,31 +18,169 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps/backend/agent/manager.py:88 +#: apps/backend/agent/artifact_builder/base.py:82 +#: apps/backend/plugin/handler.py:71 apps/backend/views.py:219 +#, python-brace-format +msgid "文件不存在:file_path -> {file_path}" +msgstr "File does not exist: file_path -> {file_path}" + +#: apps/backend/agent/artifact_builder/base.py:197 +#, fuzzy, python-brace-format +msgid "gsectl 文件不存在:file_path -> {file_path}" +msgstr "File gsectl does not exist: file_path -> {file_path}" + +msgid "" +"Agent 包保存错误,期望保存到 -> {package_target_path}, 实际保存到 -> " +"{storage_path}" +msgstr "" +"Error saving Agent package, expect to save to -> {package_target_path}, " +"actually save to -> {storage_path}" + +#: apps/backend/agent/artifact_builder/base.py:334 +#, fuzzy +msgid "版本文件不存在" +msgstr "Version file does not exist" + +#: apps/backend/agent/artifact_builder/base.py:354 +#, fuzzy +msgid "版本日志文件不存在" +msgstr "Version log file does not exist" + +#: apps/backend/agent/artifact_builder/proxy.py:44 +#, python-brace-format +msgid "Proxy 包解压后不存在 {base_pkg_dir} 目录" +msgstr "The {base_pkg_dir} directory does not exist after Proxy package decompression" + +#: apps/backend/agent/artifact_builder/proxy.py:55 +#, fuzzy, python-brace-format +msgid "构建 Proxy 所需 Agent 包不存在:file_path -> {file_path}" +msgstr "Agent package required to build Proxy rs not exists: file_path -> {file_path}" + +#: apps/backend/agent/artifact_builder/proxy.py:78 +msgid "构建 Proxy 所需 Agent 不存在 bin 路径" +msgstr "The Agent required to build Proxy does not exist bin path" + +#: apps/backend/agent/artifact_builder/proxy.py:85 +#, python-brace-format +msgid "构建 Proxy 所需二进制 [{svr_exe}] 不存在:svr_exe_path -> {svr_exe_path}" +msgstr "The binary [{svr_exe}] required to build proxy does not exist: svr_exe_path -> {svr_exe_path}" + +#: apps/backend/agent/manager.py:95 msgid "卸载Agent" msgstr "Uninstall Agent" -#: apps/backend/agent/manager.py:97 +#: apps/backend/agent/manager.py:104 msgid "卸载Proxy" msgstr "Uninstall Proxy" -#: apps/backend/agent/manager.py:167 +#: apps/backend/agent/manager.py:177 msgid "启动 NGINX 服务" msgstr "Start NGINX service" -#: apps/backend/agent/manager.py:190 +#: apps/backend/agent/solution_maker.py:153 apps/node_man/constants.py:286 +msgid "卸载" +msgstr "Uninstall" + +#: apps/backend/agent/solution_maker.py:153 +#: apps/backend/components/collections/agent_new/components.py:63 +#: apps/backend/subscription/steps/agent.py:513 +#: apps/backend/subscription/steps/agent.py:547 apps/node_man/constants.py:279 +msgid "安装" +msgstr "Install" + +#: apps/backend/agent/solution_maker.py:357 +msgid "创建依赖目录" +msgstr "Create dependencies" + +#: apps/backend/agent/solution_maker.py:372 #, python-brace-format -msgid "托管 {plugin_name} 插件进程" -msgstr "Supervised {plugin_name} plugin process" +msgid "创建 {dir}" +msgstr "Create {dir}" -#: apps/backend/api/constants.py:117 apps/node_man/constants.py:377 -#: apps/node_man/constants.py:688 apps/node_man/constants.py:724 -#: apps/node_man/tools/job.py:53 +#: apps/backend/agent/solution_maker.py:422 +#, python-brace-format +msgid "下载 {filename}" +msgstr "Download {filename}" + +#: apps/backend/agent/solution_maker.py:434 +#, python-brace-format +msgid "为 {filename} 添加执行权限" +msgstr "Add execution permissions for {filename}" + +#: apps/backend/agent/solution_maker.py:444 +#, python-brace-format +msgid "执行 {filename}" +msgstr "Execute {filename}" + +#: apps/backend/agent/solution_maker.py:535 +#: apps/backend/agent/solution_maker.py:670 +#, python-brace-format +msgid "通过 {solution_type_alias} 进行{setup_type_alias}" +msgstr "Execute {setup_type_alias} by {solution_type_alias}" + +#: apps/backend/agent/solution_maker.py:542 +#, python-brace-format +msgid "" +"{solution_description}(若目标机器已安装 Cygwin,推荐使用该方案,否则请使用" +"【{batch}】方案)" +msgstr "{solution_description} (If the target machine has Cygwin installed, this solution is recommended, otherwise, please use the【{batch}】solution)" + +#: apps/backend/agent/solution_maker.py:556 +#, fuzzy +#| msgid "文件下载url" +msgid "依赖文件下载" +msgstr "File download url" + +#: apps/backend/agent/solution_maker.py:579 +#, python-brace-format +msgid "下载{setup_type_alias}脚本并赋予执行权限" +msgstr "Download {setup_type_alias} script and add execution permissions" + +#: apps/backend/agent/solution_maker.py:586 +#: apps/backend/agent/solution_maker.py:655 +#: apps/backend/agent/solution_maker.py:754 +#: apps/backend/agent/solution_maker.py:760 +#, python-brace-format +msgid "下载{setup_type_alias}脚本" +msgstr "Download {setup_type_alias} script" + +#: apps/backend/agent/solution_maker.py:594 +#, python-brace-format +msgid "为 {script_file_name} 添加执行权限" +msgstr "Add execution permissions for {script_file_name}" + +#: apps/backend/agent/solution_maker.py:604 +#: apps/backend/agent/solution_maker.py:610 +#: apps/backend/agent/solution_maker.py:661 +#: apps/backend/agent/solution_maker.py:801 +#: apps/backend/agent/solution_maker.py:807 +#, python-brace-format +msgid "执行{setup_type_alias}脚本" +msgstr "Execute {setup_type_alias} script" + +#: apps/backend/agent/solution_maker.py:628 +#, python-brace-format +msgid "下载依赖文件到 {dest_dir} 下" +msgstr "Download the dependency file to {dest_dir}" + +#: apps/backend/agent/solution_maker.py:650 +#, python-brace-format +msgid "执行{setup_type_alias}命令" +msgstr "Execute {setup_type_alias} command" + +#: apps/backend/agent/solution_maker.py:818 +#, python-brace-format +msgid "通过 {solution_type_alias} 在代理上进行{setup_type_alias}" +msgstr "Perform {solution_type_alias} on proxy {setup_type_alias}" + +#: apps/backend/api/constants.py:117 apps/node_man/constants.py:374 +#: apps/node_man/constants.py:689 apps/node_man/constants.py:725 +#: apps/node_man/tools/job.py:55 msgid "执行成功" msgstr "Succeed" -#: apps/backend/api/constants.py:118 apps/node_man/constants.py:376 -#: apps/node_man/constants.py:687 apps/node_man/constants.py:723 +#: apps/backend/api/constants.py:118 apps/node_man/constants.py:373 +#: apps/node_man/constants.py:688 apps/node_man/constants.py:724 msgid "正在执行" msgstr "Running" @@ -66,9 +204,9 @@ msgstr "Illegal operation type" msgid "进程启动失败(后置检查状态为未运行)" msgstr "Process start failed (post-check status is not running)" -#: apps/backend/api/constants.py:124 apps/node_man/constants.py:378 -#: apps/node_man/constants.py:685 apps/node_man/constants.py:721 -#: apps/node_man/constants.py:725 +#: apps/backend/api/constants.py:124 apps/node_man/constants.py:375 +#: apps/node_man/constants.py:686 apps/node_man/constants.py:722 +#: apps/node_man/constants.py:726 msgid "执行失败" msgstr "Failed" @@ -108,17 +246,53 @@ msgstr "GSE poll timeout" msgid "GSE任务({task_id})轮询超时" msgstr "GSE task ({task_id}) poll timed out" -#: apps/backend/components/collections/agent_new/base.py:161 +#: apps/backend/components/collections/agent_new/add_or_update_hosts.py:101 +#: apps/backend/components/collections/agent_new/add_or_update_hosts.py:137 +#, fuzzy, python-brace-format +#| msgid "" +#| "主机期望注册到「{bk_biz_id}」[{bk_biz_name}],但实际存在于业务「ID: " +#| "{actual_biz_id}」,请前往该业务进行安装" +msgid "主机期望注册到业务【ID:{except_bk_biz_id}】,但实际存在于业务【ID: {actual_biz_id}】,请前往该业务进行安装" +msgstr "" +"The host expects to register to business [ID: {except_bk_biz_id}], but actually " +"exists in the business ID: {actual_biz_id}, please go to the business to " +"install" + +#: apps/backend/components/collections/agent_new/add_or_update_hosts.py:289 +#, python-brace-format +msgid "" +"更新 CMDB 主机信息:\n" +" {params}" +msgstr "Update CMDB host information: \n {params}" + +#: apps/backend/components/collections/agent_new/add_or_update_hosts.py:326 #, python-brace-format -msgid "所选安装通道「{name} 没有可用跳板机" +msgid "" +"添加主机到业务 {bk_biz_name}[{bk_biz_id}]:\n" +" {params}" +msgstr "Add host to business {bk_biz_name}[{bk_biz_id}]:\n" +" {params}" + +#: apps/backend/components/collections/agent_new/base.py:194 +#, fuzzy, python-brace-format +msgid "所选安装通道「{name}」 没有可用跳板机" msgstr "The selected installation channel '{name} has no jumper available" -#: apps/backend/components/collections/agent_new/base.py:172 -#: apps/backend/components/collections/agent_new/choose_access_point.py:317 +#: apps/backend/components/collections/agent_new/base.py:205 +#: apps/backend/components/collections/agent_new/choose_access_point.py:340 #, python-brace-format msgid "云区域 -> {bk_cloud_id} 下无存活的 Proxy" msgstr "cloud area -> no live proxy under {bk_cloud_id}" +#: apps/backend/components/collections/agent_new/bind_host_agent.py:64 +#, python-brace-format +msgid "已将 Agent[bk_agent_id: {bk_agent_id}] 绑定到 主机[bk_host_id: {bk_host_id}]" +msgstr "Agent [bk_agent_id: {bk_agent_id}] has bind to the host [bk_host_id: {bk_host_id}]" + +#: apps/backend/components/collections/agent_new/bind_host_agent.py:108 +msgid "bk_agent_id 不存在" +msgstr "bk_agent_id does not exist" + #: apps/backend/components/collections/agent_new/check_agent_status.py:42 msgid "Agent 状态【正常】" msgstr "Agent status [normal]" @@ -127,47 +301,53 @@ msgstr "Agent status [normal]" msgid "Agent 状态【异常】" msgstr "Agent status [abnormal]" -#: apps/backend/components/collections/agent_new/check_policy_gse_to_proxy.py:65 -#: apps/backend/tests/components/collections/agent_new/test_check_policy_gse_to_proxy.py:59 +#: apps/backend/components/collections/agent_new/check_policy_gse_to_proxy.py:61 +#: apps/backend/tests/components/collections/agent_new/test_check_policy_gse_to_proxy.py:81 msgid "请检查出口IP是否正确或策略是否开通" msgstr "Please check whether the egress IP is correct or the policy is enabled" -#: apps/backend/components/collections/agent_new/check_policy_gse_to_proxy.py:78 -#, python-brace-format +#: apps/backend/components/collections/agent_new/check_policy_gse_to_proxy.py:83 +#, fuzzy, python-brace-format +#| msgid "" +#| "请确保 GSE BT File Server 公网IP({bt_server_ips})到 Proxy 出口" +#| "IP({proxy_outer_ip})的 {btsvr_thrift_port}(tcp), {bt_port}-" +#| "{tracker_port}(tcp/udp) 访问策略正常。\n" +#| "另外请注意:\n" +#| "1. 可执行 curl ipinfo.io 确认「出口IP」\n" +#| "2. 不支持多台 Proxy 使用同一个「出口IP」\n" +#| "3. 请保证「出口IP」固定不变" msgid "" -"请确保 GSE BT File Server 公网IP({bt_server_ips})到 Proxy 出口" -"IP({proxy_outer_ip})的 {btsvr_thrift_port}(tcp), {bt_port}-{tracker_port}" -"(tcp/udp) 访问策略正常。\n" +"请确保 GSE File Server 公网IP({file_endpoints})到 Proxy 出口" +"IP({proxy_outer_ip})的 {port_polices} 访问策略正常。\n" "另外请注意:\n" "1. 可执行 curl ipinfo.io 确认「出口IP」\n" "2. 不支持多台 Proxy 使用同一个「出口IP」\n" "3. 请保证「出口IP」固定不变" msgstr "" -"Please make sure the GSE BT File Server public IP ({bt_server_ips}) to the " -"Proxy exitIP({proxy_outer_ip}) {btsvr_thrift_port}(tcp), {bt_port}-" -"{tracker_port}(tcp/udp) access policy OK.\n" +"Please make sure the GSE File Server public IP ({file_endpoints}) to the " +"{port_polices} access Proxy public IP({proxy_outer_ip}) policy OK.\n" "Also note:\n" "1. Execute curl ipinfo.io to confirm the 'export IP'\n" "2. Multiple proxies using the same 'exit IP' are not supported\n" "3. Please ensure that the 'export IP' is fixed" -#: apps/backend/components/collections/agent_new/choose_access_point.py:68 +#: apps/backend/components/collections/agent_new/choose_access_point.py:69 msgid "选择接入点失败" msgstr "Failed to select access point" -#: apps/backend/components/collections/agent_new/choose_access_point.py:70 +#: apps/backend/components/collections/agent_new/choose_access_point.py:71 #, python-brace-format msgid "已选择 [{ap_name}] 作为本次安装的接入点" msgstr "" "[{ap_name}] has been selected as the access point for this installation" -#: apps/backend/components/collections/agent_new/choose_access_point.py:135 +#: apps/backend/components/collections/agent_new/choose_access_point.py:152 #, python-brace-format msgid "连接至接入点 [{ap_name}] 的平均延迟为 {ping_time}ms" msgstr "" "The average latency to connect to access point [{ap_name}] is {ping_time}ms" -#: apps/backend/components/collections/agent_new/choose_access_point.py:142 +#: apps/backend/components/collections/agent_new/choose_access_point.py:159 #, python-brace-format msgid "" "主机 <--> 接入点网络情况检测结果:\n" @@ -176,13 +356,13 @@ msgstr "" "Host <--> Access point network condition test result:\n" "{detect_logs_str}" -#: apps/backend/components/collections/agent_new/choose_access_point.py:150 +#: apps/backend/components/collections/agent_new/choose_access_point.py:167 msgid "自动选择接入点失败,接入点均 ping 不可达" msgstr "" "Failed to automatically select access points, all access points are ping " "unreachable" -#: apps/backend/components/collections/agent_new/choose_access_point.py:350 +#: apps/backend/components/collections/agent_new/choose_access_point.py:373 #, python-brace-format msgid "" "已选择 Proxy 所在云区域「{bk_cloud_name}」[{bk_cloud_id}] 指定的接入点 " @@ -191,48 +371,39 @@ msgstr "" "The access point specified by the cloud area {bk_cloud_name} [{bk_cloud_id}] " "where the Proxy is located [{ap_name}]" -#: apps/backend/components/collections/agent_new/choose_access_point.py:425 +#: apps/backend/components/collections/agent_new/choose_access_point.py:448 msgid "自动选择接入点失败,请到全局配置新建接入点" msgstr "" "Failed to automatically select access point, please go to global " "configuration to create a new access point" -#: apps/backend/components/collections/agent_new/choose_access_point.py:463 +#: apps/backend/components/collections/agent_new/choose_access_point.py:486 #, python-brace-format msgid "当前主机已分配接入点 [{ap_name}]" msgstr "The current host has assigned access point [{ap_name}]" -#: apps/backend/components/collections/agent_new/components.py:39 +#: apps/backend/components/collections/agent_new/components.py:45 msgid "查询主机密码" msgstr "Query host password" -#: apps/backend/components/collections/agent_new/components.py:45 +#: apps/backend/components/collections/agent_new/components.py:51 msgid "选择接入点" msgstr "Select access point" -#: apps/backend/components/collections/agent_new/components.py:51 +#: apps/backend/components/collections/agent_new/components.py:57 msgid "注册主机到配置平台" msgstr "register host to configuration platform" -#: apps/backend/components/collections/agent_new/components.py:57 -#: apps/node_man/constants.py:282 -msgid "安装" -msgstr "Install" - -#: apps/backend/components/collections/agent_new/components.py:63 +#: apps/backend/components/collections/agent_new/components.py:69 msgid "安装预设插件" msgstr "Install preset plugin" -#: apps/backend/components/collections/agent_new/components.py:69 +#: apps/backend/components/collections/agent_new/components.py:75 msgid "配置策略" msgstr "Configure policy" -#: apps/backend/components/collections/agent_new/components.py:75 -msgid "托管插件进程" -msgstr "Supervised plugin process" - #: apps/backend/components/collections/agent_new/components.py:81 -#: apps/backend/plugin/manager.py:62 +#: apps/backend/plugin/manager.py:60 msgid "查询Agent状态" msgstr "Query Agent Status" @@ -241,7 +412,7 @@ msgid "重载Agent配置" msgstr "Reload Agent Configuration" #: apps/backend/components/collections/agent_new/components.py:93 -#: apps/node_man/constants.py:283 apps/node_man/constants.py:461 +#: apps/node_man/constants.py:280 apps/node_man/constants.py:458 msgid "重启" msgstr "Restart" @@ -294,79 +465,47 @@ msgstr "Transfer file to Proxy" msgid "更新安装信息" msgstr "Update installation info" -#: apps/backend/components/collections/agent_new/configure_policy.py:54 -msgid "到Gse和Nginx的策略配置成功" -msgstr "Policies to Gse and Nginx are configured successfully" +#: apps/backend/components/collections/agent_new/components.py:171 +msgid "绑定主机 Agent 信息" +msgstr "Bind host Agent information" -#: apps/backend/components/collections/agent_new/configure_policy.py:59 -msgid "配置到Gse和Nginx的策略失败请联系节点管理维护人员" -msgstr "" -"Failed to configure policies to Gse and Nginx, please contact node " -"management and maintainers" - -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:98 -#, python-brace-format -msgid "" -"更新 {proc_name} 进程信息:call GSE api -> update_proc_info with params: \n" -" {query_params})" -msgstr "" -"Update {proc_name} process info: call GSE api -> update_proc_info with " -"params: \"n {query_params})" +#: apps/backend/components/collections/agent_new/components.py:177 +msgid "主机解绑 Agent 信息" +msgstr "Unbind host Agent information" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:127 -#, python-brace-format -msgid "未能查询到进程更新结果,gse_proc_key -> {gse_proc_key}" -msgstr "" -"Failed to query the process update result, gse_proc_key -> {gse_proc_key}" +#: apps/backend/components/collections/agent_new/components.py:183 +#, fuzzy +msgid "新增或更新主机信息" +msgstr "Add or Update host information" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:136 -#, python-brace-format -msgid "" -"GSE 更新 {proc_name} 进程信息失败,gse_proc_key -> {gse_proc_key}, " -"error_code -> {error_code}, error_msg -> {error_msg}" -msgstr "" -"GSE failed to update {proc_name} process information, gse_proc_key -> " -"{gse_proc_key}, error_code -> {error_code}, error_msg -> {error_msg}" +#: apps/backend/components/collections/agent_new/components.py:189 +#, fuzzy +#| msgid "升级 Agent" +msgid "升级为 Agent-ID 配置" +msgstr "Upgrade to Agent-ID configured" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:151 -#, python-brace-format -msgid "已成功更新 {proc_name} 进程信息" -msgstr "Successfully updated {proc_name} process information" +#: apps/backend/components/collections/agent_new/components.py:195 +msgid "推送主机身份信息" +msgstr "Push host identify information" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:180 -#, python-brace-format -msgid "「{plugin_name}」不支持操作系统 -> {os_type},跳过该步骤" -msgstr "{plugin_name} does not support OS -> {os_type}, skip this step" +#: apps/backend/components/collections/agent_new/components.py:201 +msgid "下发 Agent 安装包到 Proxy" +msgstr "Send Agent installation package to Proxy" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:227 -#, python-brace-format -msgid "" -"托管 {proc_name} 进程:call GSE api -> operate_proc_v2 with params: \n" -" {query_params}" -msgstr "" -"supervised {proc_name} process: call GSE api -> operate_proc_v2 with params: " -"\"n {query_params}" - -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:268 -#, python-brace-format -msgid "未能查询到进程操作结果, task_id -> {task_id}, gse_proc_key -> {key}" -msgstr "" -"Failed to query process operation result, task_id -> {task_id}, gse_proc_key " -"->; {key}" +#: apps/backend/components/collections/agent_new/components.py:207 +#, fuzzy +msgid "检查Agent功能" +msgstr "Check Agent ability" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:280 -#: apps/backend/components/collections/plugin.py:1197 -msgid "GSE任务轮询超时" -msgstr "GSE task polling timeout" +#: apps/backend/components/collections/agent_new/configure_policy.py:54 +msgid "到Gse和Nginx的策略配置成功" +msgstr "Policies to Gse and Nginx are configured successfully" -#: apps/backend/components/collections/agent_new/delegate_plugin_proc.py:285 -#, python-brace-format -msgid "" -"调用 GSE 接口异常:错误码 -> {error_code}「{error_code_alias}」, 错误信息 -> " -"{error_msg}" +#: apps/backend/components/collections/agent_new/configure_policy.py:59 +msgid "配置到Gse和Nginx的策略失败请联系节点管理维护人员" msgstr "" -"Exception calling GSE interface: error code-> {error_code}" -"{error_code_alias}, error message-> {error_msg}" +"Failed to configure policies to Gse and Nginx, please contact node " +"management and maintainers" #: apps/backend/components/collections/agent_new/get_agent_status.py:44 #, python-brace-format @@ -390,18 +529,25 @@ msgstr "none" msgid "查询 GSE 超时" msgstr "Query GSE timed out" -#: apps/backend/components/collections/agent_new/install.py:199 +#: apps/backend/components/collections/agent_new/install.py:201 msgid "等待手动执行安装命令" msgstr "waiting for manual install command" -#: apps/backend/components/collections/agent_new/install.py:299 +#: apps/backend/components/collections/agent_new/install.py:307 #: apps/backend/utils/ssh.py:416 apps/exceptions.py:115 msgid "认证信息已过期, 请重装并填入认证信息" msgstr "" "The authentication information has expired, please reload and fill in the " "authentication information" -#: apps/backend/components/collections/agent_new/install.py:321 +#: apps/backend/components/collections/agent_new/install.py:313 +#: apps/backend/components/collections/agent_new/install.py:323 +#: apps/backend/components/collections/agent_new/install.py:519 +#, python-brace-format +msgid "执行命令: {cmd}" +msgstr "Execute command: {cmd}" + +#: apps/backend/components/collections/agent_new/install.py:329 msgid "" "正在安装 Windows AGENT, 命令执行失败,请确认: \n" "1. 检查文件共享相关服务,确认以下服务均已开启\n" @@ -428,29 +574,34 @@ msgstr "" "3. Enable file sharing Net share \n" "4. Check if the firewall has opened ports 139/135/445\n" -#: apps/backend/components/collections/agent_new/install.py:336 -#: apps/backend/components/collections/agent_new/install.py:362 +#: apps/backend/components/collections/agent_new/install.py:344 +#: apps/backend/components/collections/agent_new/install.py:380 msgid "远程登录失败,等待自动重试,重试失败将打印异常信息。" msgstr "" "Remote login failed, waiting for automatic retry, if retry fails, an " "exception message will be printed." -#: apps/backend/components/collections/agent_new/install.py:339 -#: apps/backend/components/collections/agent_new/install.py:365 +#: apps/backend/components/collections/agent_new/install.py:347 +#: apps/backend/components/collections/agent_new/install.py:383 msgid "远程登录失败" msgstr "remote login failed" -#: apps/backend/components/collections/agent_new/install.py:377 +#: apps/backend/components/collections/agent_new/install.py:369 +#, python-brace-format +msgid "推送文件 {localpath} 到目标机器路径 {dest_dir}" +msgstr "Push file {localpath} to the target machine path {dest_dir}" + +#: apps/backend/components/collections/agent_new/install.py:395 #, python-brace-format msgid "主机的上游节点为: {upstream_nodes}" msgstr "The upstream nodes of the host are: {upstream_nodes}" -#: apps/backend/components/collections/agent_new/install.py:381 +#: apps/backend/components/collections/agent_new/install.py:399 #, python-brace-format msgid "已选择 {inner_ip} 作为本次安装的跳板机" msgstr "{inner_ip} has been selected as the springboard for this installation" -#: apps/backend/components/collections/agent_new/install.py:404 +#: apps/backend/components/collections/agent_new/install.py:437 #, python-brace-format msgid "" "作业任务ID为[{job_instance_id}],点击跳转到[Blueking JOB]" -#: apps/backend/components/collections/agent_new/install.py:418 +#: apps/backend/components/collections/agent_new/install.py:451 #, python-brace-format msgid "" "作业执行中,如果卡在这里较长时间,请检查:\n" @@ -476,25 +627,30 @@ msgstr "" "3. Click the link above to jump to the job platform to view the task " "execution status.\n" -#: apps/backend/components/collections/agent_new/install.py:484 -#, python-brace-format -msgid "检测到目标机器已安装 curl -> {curl_path},将通过 curl 下载依赖文件" -msgstr "" -"Detected that the target machine has curl -> {curl_path} installed, will " -"download the dependencies through curl" - -#: apps/backend/components/collections/agent_new/install.py:500 +#: apps/backend/components/collections/agent_new/install.py:510 #, python-brace-format msgid "" "推送下列文件到「{dest_dir}」\n" "{filenames_str}" msgstr "Push the following files to {dest_dir}\"n {filenames_str}" -#: apps/backend/components/collections/agent_new/install.py:583 +#: apps/backend/components/collections/agent_new/install.py:679 msgid "安装超时" msgstr "install timed out" -#: apps/backend/components/collections/agent_new/query_password.py:57 +#: apps/backend/components/collections/agent_new/push_host_identifier.py:50 +msgid "推送主机身份的任务为: [{}]" +msgstr "The task of pushing the host identify is: [{}]" + +#: apps/backend/components/collections/agent_new/push_host_identifier.py:97 +msgid "推送主机身份失败" +msgstr "Push the host identity failed" + +#: apps/backend/components/collections/agent_new/push_host_identifier.py:108 +msgid "推送主机身份超时" +msgstr "Push the host identity timeout" + +#: apps/backend/components/collections/agent_new/query_password.py:59 msgid "" "若 OA TICKET 过期,请重新登录 OA 后再重试您的操作。请注意不要直接使用此任务中" "的重试功能~" @@ -503,11 +659,21 @@ msgstr "" "again. Please be careful not to use the retry function in this task directly " "~" -#: apps/backend/components/collections/agent_new/query_password.py:82 +#: apps/backend/components/collections/agent_new/query_password.py:140 +#, fuzzy +#| msgid "该主机的登录认证信息已被清空,无法重试,请重新发起安装任务" +msgid "" +"登录认证信息已被清空\n" +"- 若为重试操作,请新建任务重新发起" +msgstr "" +"Login authentication information has been cleared \n" +"- If it is a retry operation, please create a new task and re-initiate" + +#: apps/backend/components/collections/agent_new/query_password.py:169 msgid "当前主机验证类型无需查询密码" msgstr "Current host verify without having to type a password query" -#: apps/backend/components/collections/agent_new/register_host.py:164 +#: apps/backend/components/collections/agent_new/register_host.py:166 #, python-brace-format msgid "" "注册主机参数为:\n" @@ -516,7 +682,7 @@ msgstr "" "The registered host parameter is:\n" "{params}" -#: apps/backend/components/collections/agent_new/register_host.py:173 +#: apps/backend/components/collections/agent_new/register_host.py:175 #, python-brace-format msgid "" "注册主机失败:\n" @@ -525,11 +691,11 @@ msgstr "" "Failed to register host:\n" "{error_msgs}" -#: apps/backend/components/collections/agent_new/register_host.py:233 +#: apps/backend/components/collections/agent_new/register_host.py:238 msgid "查询CMDB主机失败,未在CMDB中查询到主机信息" msgstr "Failed to query CMDB host, no host information was queried in CMDB" -#: apps/backend/components/collections/agent_new/register_host.py:241 +#: apps/backend/components/collections/agent_new/register_host.py:254 #, python-brace-format msgid "" "主机期望注册到「{bk_biz_id}」[{bk_biz_name}],但实际存在于业务「ID: " @@ -539,22 +705,33 @@ msgstr "" "exists in the business ID: {actual_biz_id}, please go to the business to " "install" -#: apps/backend/components/collections/agent_new/register_host.py:284 -msgid "该主机的登录认证信息已被清空,无法重试,请重新发起安装任务" -msgstr "" -"The login authentication information of this host has been cleared and " -"cannot be retried. Please re-initiate the installation task" - -#: apps/backend/components/collections/agent_new/register_host.py:448 +#: apps/backend/components/collections/agent_new/register_host.py:405 msgid "注册CMDB完成" msgstr "Registration to CMDB completed" +#: apps/backend/components/collections/agent_new/unbind_host_agent.py:50 +#, python-brace-format +msgid "" +"已将 Agent[bk_agent_id: {bk_agent_id}] 和 主机[bk_host_id: {bk_host_id}] 之间" +"的绑定关系解除" +msgstr "Between agent [bk_agent_id: {bk_agent_id}] and host [bk_host_id: {bk_host_id}] binding relationship hase been release" + +#: apps/backend/components/collections/agent_new/unbind_host_agent.py:72 +msgid "不存在绑定关系,无需解绑" +msgstr "No binding relationship, not need to unbind" + #: apps/backend/components/collections/agent_new/update_process_status.py:49 #, python-brace-format msgid "更新主机状态为{status}" msgstr "Update host status to {status}" -#: apps/backend/components/collections/base.py:85 +#: apps/backend/components/collections/agent_new/upgrade_to_agent_id.py:44 +#, fuzzy +#| msgid "升级 Agent" +msgid "升级 Agent-ID 配置失败" +msgstr "Upgrade Agent-ID configuration failed" + +#: apps/backend/components/collections/base.py:88 #, python-brace-format msgid "" "{act_name} 失败: {exc},请先尝试查看错误日志进行处理,若无法解决,请联系管理" @@ -563,7 +740,7 @@ msgstr "" "{act_name} failed: {exc}, please try to check the error log to deal with it, " "if it can't be solved, please contact the management manager to deal with" -#: apps/backend/components/collections/base.py:365 +#: apps/backend/components/collections/base.py:366 #, python-brace-format msgid "" "{act_name} 已终止,可整体重试/重试。(details: {revoke_sub_inst_id_set})" @@ -571,19 +748,19 @@ msgstr "" "{act_name} terminated, retry/retry as a whole. (details: " "{revoke_sub_inst_id_set})" -#: apps/backend/components/collections/base.py:388 +#: apps/backend/components/collections/base.py:389 #, python-brace-format msgid "{act_name} 失败,请先尝试查看日志并处理,若无法解决,请联系管理员处理。" msgstr "" "{act_name} failed, please try to view the log and deal with it. If it cannot " "be solved, please contact the administrator to deal with it." -#: apps/backend/components/collections/base.py:399 +#: apps/backend/components/collections/base.py:400 #, python-brace-format msgid "{act_name} 成功" msgstr "{act_name} succeeded" -#: apps/backend/components/collections/base.py:421 +#: apps/backend/components/collections/base.py:422 #, python-brace-format msgid "开始 {act_name}." msgstr "Start {act_name}." @@ -607,23 +784,27 @@ msgstr "" "The current logged-in user is {account}, please make sure this user has sudo " "privileges" -#: apps/backend/components/collections/core.py:35 +#: apps/backend/components/collections/core.py:37 msgid "使用 ssh 会话执行命令" msgstr "Execute command using ssh session" -#: apps/backend/components/collections/core.py:36 +#: apps/backend/components/collections/core.py:38 msgid "使用 wmiexe 会话执行命令" msgstr "Execute command using wmiexe session" -#: apps/backend/components/collections/core.py:37 +#: apps/backend/components/collections/core.py:39 msgid "使用 job 执行命令" msgstr "Execute command using job" -#: apps/backend/components/collections/core.py:38 +#: apps/backend/components/collections/core.py:40 msgid "查询密码" msgstr "query password" -#: apps/backend/components/collections/job.py:148 +#: apps/backend/components/collections/core.py:41 +msgid "主机写入操作" +msgstr "Host write operation" + +#: apps/backend/components/collections/job.py:151 #, python-brace-format msgid "" "下发配置文件 [{file_names}] 到目标机器路径 [{file_target_path}],若下发失败," @@ -633,18 +814,18 @@ msgstr "" "[{file_target_path}], if the delivery fails,Please check whether the machine " "deployed by the job platform has AGENT installed" -#: apps/backend/components/collections/job.py:152 +#: apps/backend/components/collections/job.py:155 #, python-brace-format msgid "快速执行脚本 {script_name}" msgstr "Fast execute scripts {script_name}" -#: apps/backend/components/collections/job.py:154 +#: apps/backend/components/collections/job.py:157 #, fuzzy #| msgid "作业平台" msgid "调用作业平台" msgstr "call Blueking Job" -#: apps/backend/components/collections/job.py:165 +#: apps/backend/components/collections/job.py:168 #, python-brace-format msgid "" "{log}\n" @@ -655,49 +836,49 @@ msgstr "" "The JOB task ID is [{job_instance_id}], click to jump to [Blueking JOB]" -#: apps/backend/components/collections/job.py:236 +#: apps/backend/components/collections/job.py:250 #, python-brace-format msgid "" "作业执行状态 -> {status}「{ip_status_msg}」, 主机任务状态码 -> {error_code}" "「{err_msg}」" msgstr "" -"Job execution status -> {status} '{ip_status_msg}', host task status code -> {error_code} " -"'{err_msg}'" +"Job execution status -> {status} '{ip_status_msg}', host task status code -> " +"{error_code} '{err_msg}'" -#: apps/backend/components/collections/job.py:246 +#: apps/backend/components/collections/job.py:260 #, python-brace-format msgid "作业平台执行失败: {err_msg}" msgstr "Job task failed: {err_msg}" -#: apps/backend/components/collections/job.py:298 +#: apps/backend/components/collections/job.py:312 msgid "该步骤无需等待作业平台执行结果" msgstr "" "This step does not need to wait for the execution result of the job platform" -#: apps/backend/components/collections/job.py:355 +#: apps/backend/components/collections/job.py:369 msgid "作业平台执行任务超时" msgstr "Job task execution task timed out" -#: apps/backend/components/collections/plugin.py:173 +#: apps/backend/components/collections/plugin.py:167 msgid "插件部署失败,重试次数 +1" msgstr "Plugin deployment failed, retries +1" -#: apps/backend/components/collections/plugin.py:365 +#: apps/backend/components/collections/plugin.py:375 msgid "主机不存在或未同步" msgstr "host does not exist or is not in sync" -#: apps/backend/components/collections/plugin.py:499 +#: apps/backend/components/collections/plugin.py:514 #, python-brace-format msgid "{bk_host_id}:AGENT异常[{status}],请尝试恢复AGENT状态或重装AGENT。" msgstr "" "{bk_host_id}: AGENT is abnormal [{status}], please try to restore AGENT " "status or reinstall AGENT." -#: apps/backend/components/collections/plugin.py:842 +#: apps/backend/components/collections/plugin.py:866 msgid "主机[{}]在ip->[{}]上无可用端口" msgstr "Host [{}] has no available port on ip->[{}]" -#: apps/backend/components/collections/plugin.py:980 +#: apps/backend/components/collections/plugin.py:1012 #, python-brace-format msgid "" "无需渲染配置,直接进入下一步骤,subscription_instance_ids -> " @@ -706,108 +887,137 @@ msgstr "" "No rendering configuration, go directly to the next step, " "subscription_instance_ids -> {subscription_instance_ids}" -#: apps/backend/components/collections/plugin.py:1235 +#: apps/backend/components/collections/plugin.py:1233 +msgid "GSE任务轮询超时" +msgstr "GSE task polling timeout" + +#: apps/backend/components/collections/plugin.py:1271 #, python-brace-format msgid "GSE任务查无结果, {task_id}, {key}" msgstr "GSE task search no result, {task_id}, {key}" -#: apps/backend/components/collections/plugin.py:1376 -#: apps/node_man/models.py:1788 +#: apps/backend/components/collections/plugin.py:1417 +#: apps/node_man/models.py:1865 msgid "策略" msgstr "policy" -#: apps/backend/components/collections/plugin.py:1376 -#: apps/backend/components/collections/plugin.py:1425 -#: apps/node_man/models.py:501 +#: apps/backend/components/collections/plugin.py:1417 +#: apps/backend/components/collections/plugin.py:1466 +#: apps/node_man/models.py:537 msgid "订阅" msgstr "subscribe" -#: apps/backend/components/collections/plugin.py:1381 +#: apps/backend/components/collections/plugin.py:1422 #, python-brace-format msgid "{sub_alias} -> {id}「{name}」 已启用,删除失败" msgstr "{sub_alias} -> {id} {name} enabled, delete failed" -#: apps/backend/components/collections/plugin.py:1391 +#: apps/backend/components/collections/plugin.py:1432 #, python-brace-format msgid "{sub_alias} -> {id}「{name}」,已部署节点数 -> {proc_count}" msgstr "{sub_alias} -> {id}{name}, number of deployed nodes -> {proc_count}" -#: apps/backend/components/collections/plugin.py:1400 +#: apps/backend/components/collections/plugin.py:1441 #, python-brace-format msgid "{sub_alias} -> {id}「{name}」 已部署节点数不为 0,跳过" msgstr "{sub_alias} -> {id}{name} The number of deployed nodes is not 0, skip" -#: apps/backend/components/collections/plugin.py:1409 +#: apps/backend/components/collections/plugin.py:1450 #, python-brace-format msgid "{sub_alias} -> {id}「{name}」删除成功" msgstr "{sub_alias} -> {id} {name} deleted successfully" -#: apps/backend/components/collections/plugin.py:1429 +#: apps/backend/components/collections/plugin.py:1470 #, python-brace-format msgid "{sub_alias} -> {id} 仅提供单次执行能力,保持{enable_alias}状态" msgstr "" "{sub_alias} -> {id} only provides single execution capability, keep " "{enable_alias} state" -#: apps/backend/components/collections/plugin.py:1432 -#: apps/backend/components/collections/plugin.py:1447 +#: apps/backend/components/collections/plugin.py:1473 +#: apps/backend/components/collections/plugin.py:1488 msgid "启用" msgstr "Enable" -#: apps/backend/components/collections/plugin.py:1432 -#: apps/backend/components/collections/plugin.py:1447 +#: apps/backend/components/collections/plugin.py:1473 +#: apps/backend/components/collections/plugin.py:1488 msgid "停用" msgstr "Deactivate" -#: apps/backend/components/collections/plugin.py:1443 +#: apps/backend/components/collections/plugin.py:1484 #, python-brace-format msgid "{sub_alias} -> {id}「{name}」切换为:{enable_alias}" msgstr "{sub_alias} -> {id} {name} switch to: {enable_alias}" -#: apps/backend/components/collections/subsubscription.py:97 +#: apps/backend/components/collections/subsubscription.py:112 #, python-brace-format msgid "{node_name} 执行成功" msgstr "{node_name} executed successfully" -#: apps/backend/constants.py:91 +#: apps/backend/components/collections/subsubscription.py:165 +#, python-brace-format +msgid "子订阅【ID:{sub_id}】任务创建失败:{err_msg}" +msgstr "Sub subscription [ID: {sub_id}] task creation failed: {err_msg}" + +#: apps/backend/components/collections/subsubscription.py:191 +#, python-brace-format +msgid "子订阅【ID:{no_ready_sub_ids}】任务创建超时" +msgstr "Sub subscription [ID: {no_ready_sub_ids}] task creation timeout" + +#: apps/backend/components/collections/subsubscription.py:212 +msgid "部分子订阅任务创建失败" +msgstr "Some sub-subscription tasks creation failed" + +#: apps/backend/constants.py:99 apps/backend/constants.py:120 msgid "新安装" msgstr "New install" -#: apps/backend/constants.py:92 +#: apps/backend/constants.py:100 msgid "版本变更" msgstr "Version change" -#: apps/backend/constants.py:93 +#: apps/backend/constants.py:101 msgid "配置变更" msgstr "Config change" -#: apps/backend/constants.py:94 +#: apps/backend/constants.py:102 msgid "进程数量不匹配" msgstr "Number of processes does not match" -#: apps/backend/constants.py:95 +#: apps/backend/constants.py:103 msgid "进程状态异常" msgstr "Process state abnormal" -#: apps/backend/constants.py:96 +#: apps/backend/constants.py:104 msgid "无需变更" msgstr "No changes required" -#: apps/backend/constants.py:97 +#: apps/backend/constants.py:105 msgid "从范围中移除" msgstr "Remove from scope" -#: apps/backend/constants.py:98 +#: apps/backend/constants.py:106 msgid "未同步的主机" msgstr "Unsynced host" -#: apps/backend/constants.py:99 +#: apps/backend/constants.py:107 msgid "手动操作豁免" msgstr "Manual Action Exemption" +#: apps/backend/constants.py:120 apps/backend/subscription/steps/agent.py:535 +#: apps/backend/subscription/steps/agent.py:576 apps/node_man/constants.py:283 +msgid "重装" +msgstr "Reinstall" + +#: apps/backend/constants.py:120 +msgid "跨级安装" +msgstr "Cross version installation" + #: apps/backend/exceptions.py:21 -msgid "文件包不存在" -msgstr "Package does not exist" +#, fuzzy +#| msgid "源文件不存在" +msgid "文件不存在" +msgstr "Source file does not exist" #: apps/backend/exceptions.py:26 apps/node_man/exceptions.py:72 msgid "任务不存在" @@ -850,6 +1060,25 @@ msgstr "Plugin parsing error" msgid "归档插件包信息错误" msgstr "Incorrect archive plugin package info" +msgid "操作系统版本安装包校验错误" +msgstr "Plugin package version check error" + +#: apps/backend/exceptions.py:73 +#, python-brace-format +msgid "操作系统[{os_type}]不支持 对应版本[{os_version}]的安装包" +msgstr "The operating system [{os_type}] does not support the installation package of the corresponding version [{os_version}]" + +msgid "配置模板不存在" +msgstr "Configuration template does not exist" + +msgid "配置模板[{name}-{filename}-{os_type}-{cpu_arch}]不存在" +msgstr "Configuration template [{name}-{filename}-{os_type}-{cpu_arch}] does not exist" + +#: apps/backend/exceptions.py:84 +#, python-brace-format +msgid "版本号 -> {version} 不符合语义化版本规则" +msgstr "Version number -> {version} does not comply with semantic versioning rules" + #: apps/backend/healthz/checker/celery_checker.py:114 #: apps/backend/healthz/checker/supervisor_checker.py:86 msgid ", 进程启动时间小于10秒,请关注" @@ -921,86 +1150,95 @@ msgstr "" "[{time_str} ERROR] The task has been in the execution state for a long time " "and has been forced to fail" -#: apps/backend/plugin/handler.py:86 -#, python-brace-format -msgid "文件不存在:file_path -> {file_path}" -msgstr "File does not exist: file_path -> {file_path}" - -#: apps/backend/plugin/handler.py:88 apps/backend/plugin/handler.py:101 -#: apps/backend/plugin/views.py:1230 +#: apps/backend/plugin/handler.py:73 apps/backend/plugin/handler.py:86 +#: apps/backend/plugin/views.py:1249 msgid "上传文件MD5校验失败,请确认重试" msgstr "Upload file MD5 verification failed, please confirm and try again" -#: apps/backend/plugin/manager.py:54 +#: apps/backend/plugin/handler.py:127 apps/backend/plugin/handler.py:174 +#: apps/node_man/views/plugin_v2.py:172 +#, python-brace-format +msgid "不存在ID为: {id} 的插件" +msgstr "Plugin with id: {id} does not exist" + +#: apps/backend/plugin/manager.py:52 msgid "初始化进程状态" msgstr "Initializing process state" -#: apps/backend/plugin/manager.py:71 +#: apps/backend/plugin/manager.py:69 #, python-brace-format msgid "更新插件部署状态为{status}" msgstr "Update plugin deployment status is {status}" -#: apps/backend/plugin/manager.py:77 apps/node_man/constants.py:829 +#: apps/backend/plugin/manager.py:75 apps/node_man/constants.py:994 msgid "下发安装包" msgstr "Transfer installation package" -#: apps/backend/plugin/manager.py:81 apps/backend/plugin/manager.py:174 +#: apps/backend/plugin/manager.py:79 +msgid "下发脚本" +msgstr "Transfer script" + +#: apps/backend/plugin/manager.py:84 +msgid "初始化操作脚本" +msgstr "Init proc operate script" + +#: apps/backend/plugin/manager.py:88 apps/backend/plugin/manager.py:181 msgid "安装插件包" msgstr "Install plugin package" -#: apps/backend/plugin/manager.py:85 +#: apps/backend/plugin/manager.py:92 msgid "卸载插件包" msgstr "Uninstall plugin package" -#: apps/backend/plugin/manager.py:92 +#: apps/backend/plugin/manager.py:99 msgid "重置重试次数" msgstr "Reset retries" -#: apps/backend/plugin/manager.py:99 +#: apps/backend/plugin/manager.py:106 msgid "分配可用端口" msgstr "Allocate available ports" -#: apps/backend/plugin/manager.py:103 +#: apps/backend/plugin/manager.py:110 msgid "删除策略" msgstr "Delete policy" -#: apps/backend/plugin/manager.py:107 +#: apps/backend/plugin/manager.py:114 msgid "切换订阅启用状态" msgstr "Toggle subscription enabled state" -#: apps/backend/plugin/manager.py:113 +#: apps/backend/plugin/manager.py:120 msgid "渲染下发配置" msgstr "Rendering config" -#: apps/backend/plugin/manager.py:124 +#: apps/backend/plugin/manager.py:131 msgid "调试插件" msgstr "Debug plugin" -#: apps/backend/plugin/manager.py:133 +#: apps/backend/plugin/manager.py:140 msgid "停止调试插件" msgstr "Stop debugging plugin" -#: apps/backend/plugin/manager.py:142 +#: apps/backend/plugin/manager.py:149 msgid "操作进程" msgstr "Operation process" -#: apps/backend/plugin/manager.py:148 apps/node_man/constants.py:302 +#: apps/backend/plugin/manager.py:155 apps/node_man/constants.py:299 msgid "移除配置" msgstr "Remove configuration" -#: apps/backend/plugin/manager.py:173 +#: apps/backend/plugin/manager.py:180 msgid "下发插件包" msgstr "Transfer plugin package" -#: apps/backend/plugin/manager.py:175 +#: apps/backend/plugin/manager.py:182 msgid "下发配置文件" msgstr "Push config file" -#: apps/backend/plugin/manager.py:176 +#: apps/backend/plugin/manager.py:183 msgid "执行插件调试进程" msgstr "Execute plugin debugging process" -#: apps/backend/plugin/manager.py:177 +#: apps/backend/plugin/manager.py:184 msgid "结束调试并回收资源" msgstr "End debugging and reclaim resources" @@ -1028,23 +1266,23 @@ msgstr "File download url" msgid "文件保存路径" msgstr "File save path" -#: apps/backend/plugin/serializers.py:260 +#: apps/backend/plugin/serializers.py:268 msgid "文件名称" msgstr "Filename" -#: apps/backend/plugin/serializers.py:261 +#: apps/backend/plugin/serializers.py:269 msgid "是否立即发布该插件" msgstr "Do you want to publish this plugin now" -#: apps/backend/plugin/serializers.py:264 +#: apps/backend/plugin/serializers.py:272 msgid "是否需要读取配置文件" msgstr "Do you need to read configuration files" -#: apps/backend/plugin/serializers.py:265 +#: apps/backend/plugin/serializers.py:273 msgid "是否可以覆盖已经存在的配置文件" msgstr "Is it possible to overwrite an existing configuration file" -#: apps/backend/plugin/serializers.py:271 +#: apps/backend/plugin/serializers.py:279 msgid "选择注册的插件包相对路径,缺省默认全选" msgstr "" "Select the relative path of the registered plugin package, the default " @@ -1062,51 +1300,51 @@ msgstr "Plugin package upload record does not exist" msgid "插件包导入失败" msgstr "Failed to import plugin package" -#: apps/backend/plugin/tools.py:58 +#: apps/backend/plugin/tools.py:57 #, python-brace-format msgid "插件不存在: file_path -> {file_path}" msgstr "Plugin does not exist: file_path -> {file_path}" -#: apps/backend/plugin/tools.py:72 +#: apps/backend/plugin/tools.py:71 #, python-brace-format msgid "文件包含非法路径成员 -> {name},请检查" msgstr "File contains illegal path member -> {name}, please check" -#: apps/backend/plugin/tools.py:157 +#: apps/backend/plugin/tools.py:156 msgid "缺少project.yaml文件" msgstr "Missing project.yaml file" -#: apps/backend/plugin/tools.py:173 +#: apps/backend/plugin/tools.py:172 msgid "project.yaml文件解析读取失败" msgstr "Failed to parse and read the project.yaml file" -#: apps/backend/plugin/tools.py:203 +#: apps/backend/plugin/tools.py:202 msgid "project.yaml 文件信息缺失" msgstr "project.yaml file information is missing" -#: apps/backend/plugin/tools.py:222 +#: apps/backend/plugin/tools.py:221 msgid "project.yaml 中 category 配置异常,请确认后重试" msgstr "" "The category configuration in project.yaml is abnormal, please confirm and " "try again" -#: apps/backend/plugin/tools.py:235 +#: apps/backend/plugin/tools.py:234 msgid "新增插件" msgstr "Add plugin" -#: apps/backend/plugin/tools.py:245 +#: apps/backend/plugin/tools.py:244 msgid "已有版本插件更新" msgstr "Existing version plugin update" -#: apps/backend/plugin/tools.py:255 +#: apps/backend/plugin/tools.py:254 msgid "低版本插件仅支持导入" msgstr "Lower version plugins only support import" -#: apps/backend/plugin/tools.py:258 +#: apps/backend/plugin/tools.py:257 msgid "更新插件版本" msgstr "Update plugin version" -#: apps/backend/plugin/tools.py:269 +#: apps/backend/plugin/tools.py:268 #, python-brace-format msgid "" "文件路径 -> {pkg_absolute_path} 所在包解析版本为 -> {version}, 最新版本 -> " @@ -1116,12 +1354,12 @@ msgstr "" "{version}, the latest version -> {release_version}, update verification " "failed" -#: apps/backend/plugin/tools.py:290 +#: apps/backend/plugin/tools.py:289 #, python-brace-format msgid "找不到需要导入的配置模板文件 -> {source_path}" msgstr "Could not find config template file to import -> {source_path}" -#: apps/backend/plugin/tools.py:658 +#: apps/backend/plugin/tools.py:571 #, python-brace-format msgid "" "插件包保存错误,期望保存到 -> {package_target_path}, 实际保存到 -> " @@ -1130,49 +1368,81 @@ msgstr "" "Error saving plugin package, expect to save to -> {package_target_path}, " "actually save to -> {storage_path}" -#: apps/backend/plugin/views.py:104 apps/backend/plugin/views.py:813 +#: apps/backend/plugin/views.py:110 apps/backend/plugin/views.py:887 msgid "找不到请求发布的文件,请确认后重试" msgstr "The requested file cannot be found, please confirm and try again" -#: apps/backend/plugin/views.py:154 +#: apps/backend/plugin/views.py:164 msgid "找不到请求的任务,请确认后重试" msgstr "The requested task could not be found, please confirm and try again" -#: apps/backend/plugin/views.py:225 +#: apps/backend/plugin/views.py:243 #, python-brace-format msgid "ID{ids}的插件包未启用,无法执行更改状态操作" msgstr "" "Plugin package for ID {ids} is not enabled to perform change state operation" -#: apps/backend/plugin/views.py:638 +#: apps/backend/plugin/views.py:700 msgid "调试任务准备中" msgstr "Debugging task in preparation" -#: apps/backend/plugin/views.py:649 +#: apps/backend/plugin/views.py:711 #, python-brace-format msgid " 开始{name} " msgstr "start {name}" -#: apps/backend/plugin/views.py:737 apps/backend/plugin/views.py:1298 +#: apps/backend/plugin/views.py:807 apps/backend/plugin/views.py:1317 msgid "请求任务不存在,请确认后重试" msgstr "The requested task does not exist, please confirm and try again" -#: apps/backend/plugin/views.py:989 apps/backend/plugin/views.py:1114 -#: apps/node_man/views/plugin_v2.py:157 -#, python-brace-format -msgid "不存在ID为: {id} 的插件" -msgstr "Plugin with id: {id} does not exist" - -#: apps/backend/plugin/views.py:1221 apps/backend/plugin/views.py:1265 +#: apps/backend/plugin/views.py:1240 apps/backend/plugin/views.py:1284 +#: apps/backend/views.py:214 apps/node_man/views/__init__.py:48 #, python-brace-format msgid "请求参数异常 [{err}],请确认后重试" msgstr "" "The request parameter is abnormal [{err}], please confirm and try again" -#: apps/backend/plugin/views.py:1305 +#: apps/backend/plugin/views.py:1324 msgid "下载安全校验失败" msgstr "Download security check failed" +#: apps/backend/serializers/response.py:20 apps/node_man/models.py:899 +#: apps/node_man/models.py:1799 apps/node_man/models.py:2193 +#: apps/node_man/models.py:2237 apps/node_man/models.py:2412 +msgid "订阅ID" +msgstr "Subscription ID" + +#: apps/backend/serializers/response.py:24 +#: apps/backend/serializers/response.py:31 +#: apps/backend/serializers/response.py:43 +#: apps/backend/serializers/response.py:70 apps/node_man/handlers/meta.py:256 +#: apps/node_man/models.py:2236 apps/node_man/serializers/debug.py:21 +#: apps/node_man/serializers/job.py:63 +msgid "任务ID" +msgstr "Task ID" + +#: apps/backend/serializers/response.py:54 +msgid "实例记录数量总和" +msgstr "The total number of subscription instance records" + +#: apps/backend/serializers/response.py:55 +#, fuzzy +#| msgid "订阅实例状态表" +msgid "实例状态列表" +msgstr "Subscription instance status table" + +#: apps/backend/serializers/response.py:56 +msgid "订阅全局状态统计" +msgstr "Subscription global status statistics" + +#: apps/backend/serializers/response.py:63 +msgid "启停动作" +msgstr "Start and stop action" + +#: apps/backend/serializers/views.py:20 +msgid "下载文件名,只能下载script_tools下的文件" +msgstr "Download file name, you can only download the file under script_tools" + #: apps/backend/subscription/errors.py:26 msgid "订阅不存在" msgstr "Subscription does not exist" @@ -1260,6 +1530,7 @@ msgstr "Plugin validation error" #: apps/backend/subscription/errors.py:107 #: apps/backend/subscription/errors.py:115 #: apps/backend/subscription/errors.py:121 +#: apps/backend/subscription/errors.py:163 #, python-brace-format msgid "{msg}" msgstr "{msg}" @@ -1307,24 +1578,44 @@ msgid "订阅[id:{subscription_id}]不存在运行中的任务,请确认" msgstr "" "Subscription [id:{subscription_id}] has no running tasks, please confirm" -#: apps/backend/subscription/handler.py:93 +#: apps/backend/subscription/errors.py:154 +msgid "订阅更新错误" +msgstr "Subscription update error" + +#: apps/backend/subscription/errors.py:155 +#, python-brace-format +msgid "订阅[id:{subscription_id}]更新错误: {msg}" +msgstr "Subscription[id:{subscription_id}]update error: {msg}" + +#: apps/backend/subscription/errors.py:162 +#, fuzzy +#| msgid "插件校验错误" +msgid "插件操作脚本校验错误" +msgstr "Plugin operate script validation error" + +#: apps/backend/subscription/handler.py:100 #, python-brace-format msgid "订阅[{subscription_id}] 不存在关联的任务" msgstr "Subscription [{subscription_id}] has no associated tasks" -#: apps/backend/subscription/steps/adapter.py:227 +#: apps/backend/subscription/handler.py:214 +#, python-brace-format +msgid "订阅 -> [{subscription_id}] 对应的订阅任务 -> [{task_id_list}] 不存在" +msgstr "The subscription -> [{subscription_id}] associated tasks -> [{task_id_list}] dose not exist" + +#: apps/backend/subscription/steps/adapter.py:234 #, python-brace-format msgid "插件包 [{name}-{version}] 不存在" msgstr "Plugin package [{name}-{version}] does not exist" -#: apps/backend/subscription/steps/adapter.py:330 +#: apps/backend/subscription/steps/adapter.py:337 #, python-brace-format msgid "订阅安装插件[{plugin_name}] 未选择支持 [{os_key}] 的插件包" msgstr "" "Subscription install plugin [{plugin_name}] has not selected a plugin " "package that supports [{os_key}]" -#: apps/backend/subscription/steps/adapter.py:345 +#: apps/backend/subscription/steps/adapter.py:352 #, python-brace-format msgid "" "插件 [{name}] 不支持 系统:{os_type}-架构:{cpu_arch}-版本:{plugin_version}" @@ -1332,7 +1623,7 @@ msgstr "" "Plugin [{name}] does not support system:{os_type}-arch:{cpu_arch}-version:" "{plugin_version}" -#: apps/backend/subscription/steps/adapter.py:354 +#: apps/backend/subscription/steps/adapter.py:361 #, python-brace-format msgid "" "插件 [{name}] 系统:{os_type}-架构:{cpu_arch}-版本:{plugin_version} 未启用" @@ -1340,14 +1631,15 @@ msgstr "" "Plugin [{name}] system:{os_type}-arch:{cpu_arch}-version:{plugin_version} is " "not enabled" -#: apps/backend/subscription/steps/agent.py:228 -#: apps/backend/subscription/steps/agent.py:249 -#: apps/backend/subscription/steps/agent.py:277 -#: apps/backend/subscription/steps/agent.py:351 +#: apps/backend/subscription/steps/agent.py:338 +#: apps/backend/subscription/steps/agent.py:360 +#: apps/backend/subscription/steps/agent.py:390 +#: apps/backend/subscription/steps/agent.py:472 +#: apps/backend/subscription/steps/agent.py:558 msgid "查询Proxy状态" msgstr "Query Proxy Status" -#: apps/backend/subscription/tasks.py:328 +#: apps/backend/subscription/tasks.py:335 #, python-brace-format msgid "" "当前{category_alias}({bk_obj_name} 级)已被优先级更高的" @@ -1358,6 +1650,11 @@ msgstr "" "higher policy{suppressed_by_category_alias}[{suppressed_by_name}(ID: " "{suppressed_by_id})] ({suppressed_by_obj_name} level) suppressed" +#: apps/backend/subscription/views.py:238 +#, python-brace-format +msgid "新增订阅步骤[{step_id}] 需要提供 type & config,错误信息 -> {err_msg}" +msgstr "Add subscription step [{step_id}] need to provide type & config, error message -> {err_msg}" + #: apps/backend/utils/ssh.py:191 msgid "认证方式错误或不支持,请确认。" msgstr "The authentication method is wrong or not supported, please confirm." @@ -1438,22 +1735,22 @@ msgid "密钥内容" msgstr "Key Content" #: apps/core/encrypt/models.py:24 apps/core/files/models.py:27 -#: apps/core/files/models.py:46 apps/node_man/models.py:301 -#: apps/node_man/models.py:333 apps/node_man/models.py:1560 -#: apps/node_man/models.py:1801 apps/node_man/models.py:2151 -#: apps/node_man/models.py:2308 +#: apps/core/files/models.py:46 apps/node_man/models.py:315 +#: apps/node_man/models.py:354 apps/node_man/models.py:1623 +#: apps/node_man/models.py:1878 apps/node_man/models.py:2243 +#: apps/node_man/models.py:2401 apps/utils/orm.py:176 msgid "更新时间" msgstr "Update time" #: apps/core/encrypt/models.py:25 apps/core/files/models.py:28 -#: apps/core/files/models.py:47 apps/node_man/models.py:332 -#: apps/node_man/models.py:1559 apps/node_man/models.py:1585 -#: apps/node_man/models.py:1662 apps/node_man/models.py:1802 -#: apps/node_man/models.py:2111 apps/node_man/models.py:2152 -#: apps/node_man/models.py:2288 apps/node_man/models.py:2309 -#: apps/node_man/models.py:2325 apps/node_man/models.py:2368 -#: pipeline/engine/models/core.py:882 pipeline/models.py:78 -#: pipeline/models.py:275 pipeline/models.py:617 +#: apps/core/files/models.py:47 apps/node_man/models.py:353 +#: apps/node_man/models.py:1622 apps/node_man/models.py:1648 +#: apps/node_man/models.py:1732 apps/node_man/models.py:1879 +#: apps/node_man/models.py:2196 apps/node_man/models.py:2244 +#: apps/node_man/models.py:2381 apps/node_man/models.py:2402 +#: apps/node_man/models.py:2418 apps/node_man/models.py:2461 +#: apps/utils/orm.py:174 pipeline/engine/models/core.py:882 +#: pipeline/models.py:78 pipeline/models.py:275 pipeline/models.py:617 msgid "创建时间" msgstr "Creation time" @@ -1534,7 +1831,7 @@ msgstr "File source type error" msgid "注册文件失败" msgstr "Failed to register file" -#: apps/core/files/exceptions.py:37 apps/node_man/constants.py:698 +#: apps/core/files/exceptions.py:37 apps/node_man/constants.py:699 msgid "文件传输失败" msgstr "File transfer failed" @@ -1567,18 +1864,19 @@ msgstr "" "Failed to register file source: bk_biz_id -> {bk_biz_id}, err_msg -> " "{err_msg}" -#: apps/core/files/models.py:19 apps/node_man/models.py:310 -#: apps/node_man/models.py:1556 apps/node_man/models.py:1795 -#: apps/node_man/serializers/cmdb.py:39 apps/node_man/serializers/cmdb.py:44 -#: apps/node_man/serializers/host.py:19 apps/node_man/serializers/host.py:37 -#: apps/node_man/serializers/host.py:72 apps/node_man/serializers/host_v2.py:26 -#: apps/node_man/serializers/job.py:30 apps/node_man/serializers/job.py:46 -#: apps/node_man/serializers/job.py:146 apps/node_man/serializers/plugin.py:195 -#: apps/node_man/serializers/plugin.py:228 +#: apps/core/files/models.py:19 apps/core/tag/models.py:59 +#: apps/node_man/models.py:325 apps/node_man/models.py:1619 +#: apps/node_man/models.py:1872 apps/node_man/serializers/cmdb.py:39 +#: apps/node_man/serializers/cmdb.py:44 apps/node_man/serializers/host.py:20 +#: apps/node_man/serializers/host.py:38 apps/node_man/serializers/host.py:77 +#: apps/node_man/serializers/host.py:97 apps/node_man/serializers/host_v2.py:26 +#: apps/node_man/serializers/job.py:66 apps/node_man/serializers/job.py:82 +#: apps/node_man/serializers/job.py:230 apps/node_man/serializers/plugin.py:195 +#: apps/node_man/serializers/plugin.py:232 #: apps/node_man/serializers/plugin_v2.py:173 #: apps/node_man/serializers/plugin_v2.py:241 -#: apps/node_man/serializers/policy.py:88 -#: apps/node_man/serializers/policy.py:112 +#: apps/node_man/serializers/policy.py:114 +#: apps/node_man/serializers/policy.py:138 msgid "业务ID" msgstr "Business ID" @@ -1626,6 +1924,262 @@ msgstr "File Source Access Parameters" msgid "作业平台文件源" msgstr "JOB file source" +#: apps/core/ipchooser/constants.py:38 +msgid "字段分隔符" +msgstr "Field separation symbol" + +#: apps/core/ipchooser/constants.py:39 +msgid "全量返回标志" +msgstr "Full return sign" + +#: apps/core/ipchooser/constants.py:40 +msgid "默认模糊查询字段" +msgstr "Default fuzzy query field" + +#: apps/core/ipchooser/constants.py:41 +msgid "主机列表默认返回字段" +msgstr "The host list defaults return field" + +#: apps/core/ipchooser/constants.py:52 apps/core/ipchooser/constants.py:64 +#: apps/node_man/constants.py:752 apps/node_man/constants.py:930 +msgid "业务" +msgstr "Business" + +#: apps/core/ipchooser/constants.py:64 apps/node_man/constants.py:930 +msgid "集群" +msgstr "Cluster" + +#: apps/core/ipchooser/constants.py:64 apps/node_man/constants.py:930 +msgid "模块" +msgstr "Module" + +#: apps/core/ipchooser/constants.py:75 +msgid "存活" +msgstr "Surviving" + +#: apps/core/ipchooser/constants.py:75 +msgid "未存活" +msgstr "Not surviving" + +#: apps/core/ipchooser/exceptions.py:22 apps/core/ipchooser/exceptions.py:23 +#, fuzzy +#| msgid "JWT校验失败" +msgid "参数校验失败" +msgstr "JWT validation failed" + +#: apps/core/ipchooser/exceptions.py:28 +#, python-brace-format +msgid "业务【bk_biz_id: {bk_biz_id}】拓扑不存在" +msgstr "Business [BK_BIZ_ID: {bk_biz_id}] topology does not exist" + +#: apps/core/ipchooser/exceptions.py:29 +msgid "业务拓扑不存在" +msgstr "Business topology does not exist" + +#: apps/core/ipchooser/permission.py:57 apps/core/ipchooser/permission.py:93 +#: apps/core/tag/permission.py:23 apps/node_man/handlers/permission.py:197 +#: apps/node_man/handlers/permission.py:258 +msgid "您没有该操作的权限" +msgstr "You do not have permission for this operation" + +#: apps/core/ipchooser/query/resource.py:43 +#, fuzzy +#| msgid "资源" +msgid "资源池" +msgstr "Resource" + +#: apps/core/ipchooser/serializers/base.py:25 +msgid "权限类型" +msgstr "Permission type" + +#: apps/core/ipchooser/serializers/base.py:40 +msgid "数据起始位置" +msgstr "Data Start Location" + +#: apps/core/ipchooser/serializers/base.py:42 +msgid "拉取数据数量,不传或传 `-1` 表示拉取所有" +msgstr "Pull the number of data, not pass or pass or passed` -1` indicate all the pulling all " + +#: apps/core/ipchooser/serializers/base.py:51 +msgid "资源范围类型" +msgstr "Resource scope type" + +#: apps/core/ipchooser/serializers/base.py:52 +msgid "资源范围ID" +msgstr "Resource scope ID" + +#: apps/core/ipchooser/serializers/base.py:54 +#: apps/core/ipchooser/serializers/base.py:62 +msgid "业务 ID" +msgstr "Business ID" + +#: apps/core/ipchooser/serializers/base.py:69 +#, fuzzy +#| msgid "节点类型" +msgid "节点类型ID" +msgstr "Node type ID" + +#: apps/core/ipchooser/serializers/base.py:70 +#, fuzzy +#| msgid "实例ID" +msgid "节点实例ID" +msgstr "Node instance ID" + +#: apps/core/ipchooser/serializers/base.py:75 apps/node_man/models.py:330 +#: apps/node_man/serializers/ap.py:70 apps/node_man/serializers/host.py:44 +#: apps/node_man/serializers/job.py:93 +msgid "内网IP" +msgstr "Intranet IP" + +#: apps/core/ipchooser/serializers/base.py:76 apps/node_man/models.py:335 +#: apps/node_man/serializers/ap.py:71 apps/node_man/serializers/host.py:45 +#: apps/node_man/serializers/job.py:97 +#, fuzzy +msgid "内网IPv6" +msgstr "Intranet IPv6" + +#: apps/core/ipchooser/serializers/base.py:77 +#, fuzzy +#| msgid "操作系统" +msgid "操作系统类型" +msgstr "Operating system" + +#: apps/core/ipchooser/serializers/base.py:78 +#: apps/node_man/handlers/meta.py:178 apps/node_man/handlers/meta.py:351 +#: apps/node_man/models.py:327 +msgid "主机名称" +msgstr "Host name" + +#: apps/core/ipchooser/serializers/base.py:79 +#: apps/node_man/serializers/cloud.py:28 +msgid "云区域名称" +msgstr "Cloud area name" + +#: apps/core/ipchooser/serializers/base.py:81 +#, fuzzy +#| msgid "Agent状态" +msgid "Agent 存活状态" +msgstr "Agent alive status" + +#: apps/core/ipchooser/serializers/base.py:84 +msgid "" +"模糊搜索内容(支持同时对`主机IP`/`主机名`/`操作系统`/`云区域名称`进行模糊搜索" +msgstr "Vague search content (support at the same time of` host ip`/`host name`/`operating system`/`` cloud area name `)" + +#: apps/core/ipchooser/serializers/base.py:90 +msgid "主机 ID 列表" +msgstr "Host ID List" + +#: apps/core/ipchooser/serializers/base.py:90 +#: apps/core/ipchooser/serializers/base.py:96 +msgid "主机 ID" +msgstr "Host ID" + +msgid "节点列表" +msgstr "Node list" + +#: apps/core/ipchooser/serializers/base.py:96 +msgid "限制检索的主机 ID 列表" +msgstr "List of host ID to limit retrieval" + +#: apps/core/ipchooser/serializers/base.py:128 +msgid "是否获取所有资源范围的拓扑结构,默认为 `false`" +msgstr "Whether to get the topology of all resource scopes, default to` false` " + +#: apps/core/ipchooser/serializers/base.py:129 +msgid "要获取拓扑结构的资源范围数组" +msgstr "Array of resource scopes to get topology" + +#: apps/core/ipchooser/serializers/base.py:136 +msgid "模糊搜索内容" +msgstr "Vague search content" + +#: apps/core/ipchooser/serializers/base.py:139 +#: apps/node_man/serializers/host.py:25 apps/node_man/serializers/host.py:79 +#: apps/node_man/serializers/host_v2.py:29 apps/node_man/serializers/job.py:232 +#: apps/node_man/serializers/job.py:294 apps/node_man/serializers/plugin.py:198 +#: apps/node_man/serializers/plugin.py:239 +#: apps/node_man/serializers/plugin_v2.py:176 +#: apps/node_man/serializers/policy.py:116 +#: apps/node_man/serializers/policy.py:140 +msgid "搜索条件" +msgstr "Search Criteria" + +#: apps/core/ipchooser/serializers/base.py:192 +msgid "云区域 ID" +msgstr "Cloud area ID" + +#: apps/core/ipchooser/serializers/base.py:193 +msgid "IPv4 协议下的主机IP" +msgstr "Host IP under IPv4 protocol" + +#: apps/core/ipchooser/serializers/base.py:194 +msgid "主机 ID,优先取 `host_id`,否则取 `ip` + `cloud_id`" +msgstr "Host ID, take ` host_id` first, otherwise take the `ip` +` cloud_id` " + +#: apps/core/ipchooser/serializers/base.py:198 +msgid "请传入 host_id 或者 cloud_id + ip" +msgstr "please incoming `host_id` or `cloud_id + ip`" + +#: apps/core/ipchooser/serializers/host_sers.py:20 +msgid "IPv4 列表" +msgstr "IPv4 List" + +#: apps/core/ipchooser/serializers/host_sers.py:21 +msgid "IPv4,支持的输入格式:`cloud_id:ip` / `ip`" +msgstr "IPv4, supported input format: `cloud_id:ip` / `ip`" + +#: apps/core/ipchooser/serializers/host_sers.py:26 +msgid "IPv6 列表" +msgstr "IPv6 list" + +#: apps/core/ipchooser/serializers/host_sers.py:27 +msgid "IPv6,支持的输入格式:`cloud_id:ipv6` / `ipv6`" +msgstr "IPv6, supported input format:` cloud_id: ipv6` / `ipv6`" + +#: apps/core/ipchooser/serializers/host_sers.py:32 +msgid "关键字列表" +msgstr "Keyword list" + +#: apps/core/ipchooser/serializers/host_sers.py:33 +msgid "关键字,解析出的`主机名`、`host_id` 等关键字信息" +msgstr "Keywords, resolving keyword information such as the main name`, `host_id`" + +#: apps/core/ipchooser/serializers/host_sers.py:37 +#: apps/core/ipchooser/serializers/topo_sers.py:43 +msgid "检索范围限制" +msgstr "Restriction range restrictions" + +#: apps/core/ipchooser/views.py:32 +msgid "批量获取含各节点主机数量的拓扑树" +msgstr "Get the topology tree with the number of hosts on each node in batches" + +#: apps/core/ipchooser/views.py:42 +msgid "查询多个节点拓扑路径" +msgstr "Query multiple node topology paths" + +#: apps/core/ipchooser/views.py:52 +msgid "根据多个拓扑节点与搜索条件批量分页查询所包含的主机信息" +msgstr "The host information contained in batch pagination search in accordance with multiple topology nodes and search conditions" + +#: apps/core/ipchooser/views.py:70 +msgid "根据多个拓扑节点与搜索条件批量分页查询所包含的主机 ID 信息" +msgstr "The host ID information contained in batch pagination search in accordance with multiple topology nodes and search conditions" + +#: apps/core/ipchooser/views.py:88 +msgid "获取多个拓扑节点的主机 Agent 状态统计信息" +msgstr "Get host Agent status statistics for multiple topology nodes" + +#: apps/core/ipchooser/views.py:104 +msgid "" +"根据用户手动输入的`IP`/`IPv6`/`主机名`/`host_id`等关键字信息获取真实存在的机" +"器信息" +msgstr "Obtain real machine information based on keyword information such as `IP`/`IPv6`/`hostname`/`host_id` manually entered by the user" + +#: apps/core/ipchooser/views.py:122 +msgid "根据主机关键信息获取机器详情信息" +msgstr "Obtain machine detailed information based on host keyword information" + #: apps/core/remote/conns/asyncssh_impl.py:72 #: apps/core/remote/conns/paramiko_impl.py:88 #, python-brace-format @@ -1703,6 +2257,166 @@ msgstr "IO exception: {err_msg}" msgid "文件远程客户端异常:{err_msg}" msgstr "File remote client exception: {err_msg}" +#: apps/core/script_manage/data.py:24 +msgid "关闭 Windows 防火墙" +msgstr "Close Windows Firewall" + +#: apps/core/script_manage/data.py:33 +msgid "开通 Windows Agent 2.0 安装所需的网络策略" +msgstr "Open Windows Agent 2.0 installation required network polices" + +#: apps/core/tag/constants.py:27 apps/node_man/constants.py:152 +msgid "插件" +msgstr "Plugin" + +#: apps/core/tag/constants.py:27 apps/node_man/constants.py:152 +msgid "Agent" +msgstr "Agent" + +#: apps/core/tag/constants.py:38 +msgid "删除标签" +msgstr "Delete tag" + +#: apps/core/tag/constants.py:38 +msgid "新建标签" +msgstr "Create tag" + +#: apps/core/tag/constants.py:38 +msgid "更新版本" +msgstr "updated version" + +#: apps/core/tag/constants.py:38 +msgid "同版本覆盖更新" +msgstr "Same version coverage update" + +#: apps/core/tag/exceptions.py:22 +#, python-brace-format +msgid "目标不存在:target_id -> {target_id}" +msgstr "The target does not exist: target_id -> {target_id}" + +#: apps/core/tag/exceptions.py:23 +msgid "目标不存在" +msgstr "Target does not exist" + +#: apps/core/tag/exceptions.py:28 +#, python-brace-format +msgid "标签不存在:target_id -> {target_id}, target_type -> {target_type}" +msgstr "The label does not exist: target_id -> {target_id}, target_type -> {target_type}" + +#: apps/core/tag/exceptions.py:29 +msgid "标签不存在" +msgstr "Tag not exist" + +#: apps/core/tag/exceptions.py:34 +#, python-brace-format +msgid "发布标签版本错误:{err_msg}" +msgstr "Release the tag version error: {err_msg}" + +#: apps/core/tag/exceptions.py:35 +msgid "发布标签版本错误" +msgstr "Release the label version error" + +#: apps/core/tag/exceptions.py:40 +#, python-brace-format +msgid "目标处理器不存在:target_type -> {target_type}" +msgstr "Target Helper dose not exists: target_type -> {target_type}" + +#: apps/core/tag/exceptions.py:41 +msgid "目标处理器不存在" +msgstr "Target Helper dose not exists" + +#: apps/core/tag/exceptions.py:46 apps/core/tag/exceptions.py:47 +msgid "标签已存在" +msgstr "Tag already exists" + +#: apps/core/tag/exceptions.py:52 +#, python-brace-format +msgid "标签名非法:{err_msg}" +msgstr "Illegal tag name: {err_msg}" + +#: apps/core/tag/exceptions.py:53 +msgid "标签名非法" +msgstr "Illegal tag name" + +#: apps/core/tag/models.py:21 apps/core/tag/serializers.py:20 +msgid "标签名称" +msgstr "Tag Name" + +#: apps/core/tag/models.py:22 +msgid "标签是否置顶" +msgstr "Is the tag is on top" + +#: apps/core/tag/models.py:23 +msgid "标签描述" +msgstr "Tag Description" + +#: apps/core/tag/models.py:24 apps/core/tag/models.py:56 +#: apps/core/tag/serializers.py:21 +msgid "目标类型" +msgstr "Type type" + +#: apps/core/tag/models.py:25 apps/core/tag/serializers.py:22 +msgid "目标 ID" +msgstr "Target ID" + +#: apps/core/tag/models.py:26 apps/core/tag/models.py:38 +#: apps/core/tag/serializers.py:23 +msgid "指向版本号" +msgstr "Point to the version number" + +#: apps/core/tag/models.py:29 apps/core/tag/models.py:30 +msgid "标签" +msgstr "Tag" + +#: apps/core/tag/models.py:36 +msgid "标签 ID" +msgstr "Tag ID" + +#: apps/core/tag/models.py:37 +msgid "变更动作" +msgstr "Change action" + +#: apps/core/tag/models.py:41 apps/core/tag/models.py:42 +msgid "标签变更记录" +msgstr "Tag change record" + +#: apps/core/tag/models.py:54 +msgid "构件名称" +msgstr "Component name" + +#: apps/core/tag/models.py:55 +msgid "构件版本" +msgstr "Component version" + +#: apps/core/tag/models.py:57 +msgid "是否全部可见" +msgstr "Is all visible" + +#: apps/core/tag/models.py:60 apps/node_man/models.py:575 +#: apps/node_man/models.py:1620 +msgid "CMDB对象ID" +msgstr "CMDB object ID" + +#: apps/core/tag/models.py:61 +#, fuzzy +#| msgid "CMDB实例ID" +msgid "CMDB实例ID范围" +msgstr "CMDB instance ID" + +#: apps/core/tag/models.py:64 apps/core/tag/models.py:65 +msgid "版本可见范围" +msgstr "version visibility range" + +#: apps/core/tag/serializers.py:36 +#, python-brace-format +msgid "标签名({name})不能与目标版本({target_version})一致" +msgstr "Tag name ({name}) cannot be consistent with the target version ({target_version})" + +#: apps/core/tag/targets/plugin.py:220 +#, python-brace-format +msgid "未找到版本包({helper_info})" +msgstr "Version package not found ({helper_info})" + #: apps/exceptions.py:24 msgid "系统异常" msgstr "System exception" @@ -1747,16 +2461,16 @@ msgstr "Error getting JWT information" msgid "JWT校验失败" msgstr "JWT validation failed" -#: apps/generic.py:181 apps/middlewares.py:173 +#: apps/generic.py:202 apps/middlewares.py:173 #, python-brace-format msgid "【APP 自定义异常】{message}, code={code}, args={args}" msgstr "[APP custom exception]{message}, code={code}, args={args}" -#: apps/generic.py:199 +#: apps/generic.py:220 msgid "系统错误,请联系管理员" msgstr "System error, please contact administrator" -#: apps/iam/exceptions.py:43 +#: apps/iam/exceptions.py:45 #, python-brace-format msgid "当前用户无 [{action_name}] 权限" msgstr "Current user does not have permission for [{action_name}]" @@ -1771,11 +2485,11 @@ msgstr "Action ID does not exist: {action_id}" msgid "获取系统信息错误:{message}" msgstr "Error getting system information: {message}" -#: apps/iam/handlers/permission.py:257 +#: apps/iam/handlers/permission.py:257 common/api/modules/cc.py:20 msgid "配置平台" msgstr "CMDB" -#: apps/iam/handlers/resources.py:177 +#: apps/iam/handlers/resources.py:186 #, python-brace-format msgid "资源ID不存在:{resource_id}" msgstr "Resource ID does not exist: {resource_id}" @@ -1801,589 +2515,721 @@ msgid "S-mart应用仅支持正式环境部署!" msgstr "S-mart application only supports production environment deployment!" #: apps/node_man/constants.py:74 apps/node_man/handlers/cloud.py:108 -#: apps/node_man/handlers/meta.py:349 apps/node_man/models.py:807 +#: apps/node_man/handlers/meta.py:361 apps/node_man/models.py:821 msgid "直连区域" msgstr "Direct area" -#: apps/node_man/constants.py:155 -msgid "Agent" -msgstr "Agent" - -#: apps/node_man/constants.py:155 -msgid "插件" -msgstr "Plugin" - -#: apps/node_man/constants.py:155 +#: apps/node_man/constants.py:152 msgid "Proxy" msgstr "Proxy" -#: apps/node_man/constants.py:220 +#: apps/node_man/constants.py:217 msgid "安装 Proxy" msgstr "Install Proxy" -#: apps/node_man/constants.py:221 +#: apps/node_man/constants.py:218 msgid "安装 Agent" msgstr "Install Agent" -#: apps/node_man/constants.py:222 +#: apps/node_man/constants.py:219 msgid "重启 Agent" msgstr "Restart Agent" -#: apps/node_man/constants.py:223 +#: apps/node_man/constants.py:220 msgid "重启 Proxy" msgstr "Restart Proxy" -#: apps/node_man/constants.py:224 +#: apps/node_man/constants.py:221 msgid "替换 Proxy" msgstr "Replace Proxy" -#: apps/node_man/constants.py:225 +#: apps/node_man/constants.py:222 msgid "重装 Proxy" msgstr "Reinstall Proxy" -#: apps/node_man/constants.py:226 +#: apps/node_man/constants.py:223 msgid "重装 Agent" msgstr "Reinstall Agent" -#: apps/node_man/constants.py:227 +#: apps/node_man/constants.py:224 msgid "升级 Proxy" msgstr "Upgrade Proxy" -#: apps/node_man/constants.py:228 +#: apps/node_man/constants.py:225 msgid "升级 Agent" msgstr "Upgrade Agent" -#: apps/node_man/constants.py:229 +#: apps/node_man/constants.py:226 msgid "移除 Agent" msgstr "Remove Agent" -#: apps/node_man/constants.py:230 +#: apps/node_man/constants.py:227 msgid "卸载 Agent" msgstr "Uninstall Agent" -#: apps/node_man/constants.py:231 +#: apps/node_man/constants.py:228 msgid "卸载 Proxy" msgstr "Uninstall Proxy" -#: apps/node_man/constants.py:232 +#: apps/node_man/constants.py:229 msgid "导入Proxy机器" msgstr "Import proxy machine" -#: apps/node_man/constants.py:233 +#: apps/node_man/constants.py:230 msgid "导入Agent机器" msgstr "Import Agent Machine" -#: apps/node_man/constants.py:234 +#: apps/node_man/constants.py:231 msgid "启动插件" msgstr "Start plugin" -#: apps/node_man/constants.py:235 +#: apps/node_man/constants.py:232 msgid "停止插件" msgstr "Stop plugin" -#: apps/node_man/constants.py:236 +#: apps/node_man/constants.py:233 msgid "重启插件" msgstr "Restart plugin" -#: apps/node_man/constants.py:237 +#: apps/node_man/constants.py:234 msgid "重载插件" msgstr "Reload plugin" -#: apps/node_man/constants.py:238 +#: apps/node_man/constants.py:235 msgid "托管插件" msgstr "Supervised plugin" -#: apps/node_man/constants.py:239 +#: apps/node_man/constants.py:236 msgid "取消托管插件" msgstr "Unsupervised plugin" -#: apps/node_man/constants.py:240 +#: apps/node_man/constants.py:237 msgid "安装插件" msgstr "Install plugin" -#: apps/node_man/constants.py:241 +#: apps/node_man/constants.py:238 msgid "停止插件并删除策略" msgstr "Stop plugin and remove policy" -#: apps/node_man/constants.py:242 apps/node_man/constants.py:243 +#: apps/node_man/constants.py:239 apps/node_man/constants.py:240 msgid "重载配置" msgstr "Reload configuration" -#: apps/node_man/constants.py:244 +#: apps/node_man/constants.py:241 msgid "打包插件" msgstr "Package plugin" -#: apps/node_man/constants.py:245 +#: apps/node_man/constants.py:242 msgid "下发插件配置" msgstr "Push plugin config" -#: apps/node_man/constants.py:246 +#: apps/node_man/constants.py:243 msgid "移除插件配置" msgstr "Remove plugin configuration" -#: apps/node_man/constants.py:248 +#: apps/node_man/constants.py:245 msgid "手动安装 Agent" msgstr "Manually install the agent" -#: apps/node_man/constants.py:249 +#: apps/node_man/constants.py:246 msgid "手动安装 Proxy" msgstr "Manually install Proxy" -#: apps/node_man/constants.py:284 +#: apps/node_man/constants.py:281 msgid "替换" msgstr "Replace" -#: apps/node_man/constants.py:285 +#: apps/node_man/constants.py:282 msgid "升级" msgstr "Upgrade" -#: apps/node_man/constants.py:286 -msgid "重装" -msgstr "Reinstall" - -#: apps/node_man/constants.py:287 +#: apps/node_man/constants.py:284 msgid "更新" msgstr "Update" -#: apps/node_man/constants.py:288 +#: apps/node_man/constants.py:285 msgid "移除" msgstr "Remove" -#: apps/node_man/constants.py:289 -msgid "卸载" -msgstr "Uninstall" - -#: apps/node_man/constants.py:290 +#: apps/node_man/constants.py:287 msgid "导入" msgstr "Import" -#: apps/node_man/constants.py:291 apps/node_man/constants.py:459 +#: apps/node_man/constants.py:288 apps/node_man/constants.py:456 msgid "启动" msgstr "Start" -#: apps/node_man/constants.py:292 apps/node_man/constants.py:460 +#: apps/node_man/constants.py:289 apps/node_man/constants.py:457 msgid "停止" msgstr "Stop" -#: apps/node_man/constants.py:293 apps/node_man/constants.py:462 +#: apps/node_man/constants.py:290 apps/node_man/constants.py:459 msgid "重载" msgstr "Reload" -#: apps/node_man/constants.py:294 apps/node_man/constants.py:463 +#: apps/node_man/constants.py:291 apps/node_man/constants.py:460 msgid "托管" msgstr "Supervised" -#: apps/node_man/constants.py:295 apps/node_man/constants.py:464 +#: apps/node_man/constants.py:292 apps/node_man/constants.py:461 msgid "取消托管" msgstr "Unsupervised" -#: apps/node_man/constants.py:296 +#: apps/node_man/constants.py:293 msgid "手动安装" msgstr "Manual install" -#: apps/node_man/constants.py:297 +#: apps/node_man/constants.py:294 msgid "打包" msgstr "Packaging" -#: apps/node_man/constants.py:298 apps/node_man/models.py:502 -#: apps/node_man/models.py:1787 +#: apps/node_man/constants.py:295 apps/node_man/models.py:538 +#: apps/node_man/models.py:1864 msgid "调试" msgstr "Debug" -#: apps/node_man/constants.py:299 +#: apps/node_man/constants.py:296 msgid "卸载并删除" msgstr "Uninstall and delete" -#: apps/node_man/constants.py:300 +#: apps/node_man/constants.py:297 msgid "下发" msgstr "Push" -#: apps/node_man/constants.py:301 +#: apps/node_man/constants.py:298 msgid "忽略" msgstr "Ignore" -#: apps/node_man/constants.py:303 +#: apps/node_man/constants.py:300 msgid "下发配置" msgstr "Push config" -#: apps/node_man/constants.py:304 +#: apps/node_man/constants.py:301 msgid "策略管控" msgstr "Policy control" -#: apps/node_man/constants.py:329 +#: apps/node_man/constants.py:326 msgid "云区域查看" msgstr "Cloud area view" -#: apps/node_man/constants.py:330 +#: apps/node_man/constants.py:327 msgid "云区域编辑" msgstr "Cloud area edit" -#: apps/node_man/constants.py:331 +#: apps/node_man/constants.py:328 msgid "云区域删除" msgstr "Cloud area delete" -#: apps/node_man/constants.py:332 +#: apps/node_man/constants.py:329 msgid "云区域创建" msgstr "Cloud area created" -#: apps/node_man/constants.py:333 +#: apps/node_man/constants.py:330 msgid "接入点编辑" msgstr "Access Point Edit" -#: apps/node_man/constants.py:334 +#: apps/node_man/constants.py:331 msgid "接入点删除" msgstr "Access point deleted" -#: apps/node_man/constants.py:335 +#: apps/node_man/constants.py:332 msgid "接入点创建" msgstr "Access Point Creation" -#: apps/node_man/constants.py:336 +#: apps/node_man/constants.py:333 msgid "接入点查看" msgstr "Access Point View" -#: apps/node_man/constants.py:337 +#: apps/node_man/constants.py:334 msgid "任务配置" msgstr "Task configuration" -#: apps/node_man/constants.py:338 +#: apps/node_man/constants.py:335 msgid "任务历史查看" msgstr "Task history view" -#: apps/node_man/constants.py:339 +#: apps/node_man/constants.py:336 msgid "agent查询" msgstr "Agent query" -#: apps/node_man/constants.py:340 +#: apps/node_man/constants.py:337 msgid "agent操作" msgstr "Agent operation" -#: apps/node_man/constants.py:341 +#: apps/node_man/constants.py:338 msgid "proxy操作" msgstr "Proxy operation" -#: apps/node_man/constants.py:342 +#: apps/node_man/constants.py:339 msgid "插件实例查询" msgstr "Plugin instance query" -#: apps/node_man/constants.py:343 +#: apps/node_man/constants.py:340 msgid "插件实例操作" msgstr "Plugin instance action" -#: apps/node_man/constants.py:344 +#: apps/node_man/constants.py:341 msgid "插件包导入" msgstr "Plugin package import" -#: apps/node_man/constants.py:345 +#: apps/node_man/constants.py:342 msgid "插件包操作" msgstr "Plugin package action" -#: apps/node_man/constants.py:346 +#: apps/node_man/constants.py:343 msgid "策略创建" msgstr "Policy creation" -#: apps/node_man/constants.py:347 +#: apps/node_man/constants.py:344 msgid "策略查看" msgstr "Policy view" -#: apps/node_man/constants.py:348 +#: apps/node_man/constants.py:345 msgid "策略编辑" msgstr "Policy edit" -#: apps/node_man/constants.py:349 +#: apps/node_man/constants.py:346 msgid "策略目标选择" msgstr "Policy target selection" -#: apps/node_man/constants.py:375 apps/node_man/constants.py:686 -#: apps/node_man/constants.py:722 apps/node_man/tools/job.py:55 +#: apps/node_man/constants.py:372 apps/node_man/constants.py:687 +#: apps/node_man/constants.py:723 apps/node_man/tools/job.py:57 msgid "等待执行" msgstr "Waiting for execution" -#: apps/node_man/constants.py:379 +#: apps/node_man/constants.py:376 msgid "部分失败" msgstr "Partial failure" -#: apps/node_man/constants.py:380 +#: apps/node_man/constants.py:377 msgid "已终止" msgstr "Terminated" -#: apps/node_man/constants.py:381 +#: apps/node_man/constants.py:378 msgid "已移除" msgstr "Removed" -#: apps/node_man/constants.py:382 +#: apps/node_man/constants.py:379 msgid "被过滤的" msgstr "Filtered" -#: apps/node_man/constants.py:383 +#: apps/node_man/constants.py:380 msgid "已忽略" msgstr "Ignored" -#: apps/node_man/constants.py:400 apps/node_man/constants.py:413 +#: apps/node_man/constants.py:397 apps/node_man/constants.py:410 msgid "未知" msgstr "Unknown" -#: apps/node_man/constants.py:400 apps/node_man/constants.py:416 -#: apps/node_man/handlers/meta.py:320 +#: apps/node_man/constants.py:397 apps/node_man/constants.py:413 +#: apps/node_man/handlers/meta.py:326 msgid "正常" msgstr "Running" -#: apps/node_man/constants.py:400 apps/node_man/constants.py:417 -#: apps/node_man/handlers/meta.py:321 +#: apps/node_man/constants.py:397 apps/node_man/constants.py:414 +#: apps/node_man/handlers/meta.py:327 msgid "异常" msgstr "Terminal" -#: apps/node_man/constants.py:400 apps/node_man/constants.py:414 +#: apps/node_man/constants.py:397 apps/node_man/constants.py:411 msgid "未安装" msgstr "Uninstall" -#: apps/node_man/constants.py:415 apps/node_man/handlers/meta.py:322 +#: apps/node_man/constants.py:412 apps/node_man/constants.py:838 +#: apps/node_man/handlers/meta.py:328 msgid "未注册" msgstr "Unregistered" -#: apps/node_man/constants.py:418 +#: apps/node_man/constants.py:415 msgid "手动停止" msgstr "Manual stop" -#: apps/node_man/constants.py:419 +#: apps/node_man/constants.py:416 msgid "成功" msgstr "Success" -#: apps/node_man/constants.py:420 +#: apps/node_man/constants.py:417 msgid "失败" msgstr "Failed" -#: apps/node_man/constants.py:421 +#: apps/node_man/constants.py:418 msgid "队列中" msgstr "In queue" -#: apps/node_man/constants.py:451 apps/node_man/constants.py:456 +#: apps/node_man/constants.py:448 apps/node_man/constants.py:453 msgid "官方插件" msgstr "official plugin" -#: apps/node_man/constants.py:452 apps/node_man/constants.py:456 +#: apps/node_man/constants.py:449 apps/node_man/constants.py:453 msgid "第三方插件" msgstr "third-party plugin" -#: apps/node_man/constants.py:453 apps/node_man/constants.py:456 +#: apps/node_man/constants.py:450 apps/node_man/constants.py:453 msgid "脚本插件" msgstr "script plugin" -#: apps/node_man/constants.py:494 apps/node_man/constants.py:498 +#: apps/node_man/constants.py:495 apps/node_man/constants.py:499 msgid "整包部署" msgstr "full package deployment" -#: apps/node_man/constants.py:495 apps/node_man/constants.py:498 +#: apps/node_man/constants.py:496 apps/node_man/constants.py:499 msgid "功能部署" msgstr "feature deployment" -#: apps/node_man/constants.py:496 apps/node_man/constants.py:498 +#: apps/node_man/constants.py:497 apps/node_man/constants.py:499 msgid "Agent自动部署" msgstr "Agent auto-deployment" -#: apps/node_man/constants.py:504 +#: apps/node_man/constants.py:505 msgid "发布(上线)插件包" msgstr "Publish (release) plugin package" -#: apps/node_man/constants.py:505 +#: apps/node_man/constants.py:506 msgid "下线插件包" msgstr "Offline plugin package" -#: apps/node_man/constants.py:506 +#: apps/node_man/constants.py:507 msgid "启用插件包" msgstr "Enable plugin package" -#: apps/node_man/constants.py:507 +#: apps/node_man/constants.py:508 msgid "停用插件包" msgstr "Deactivate plugin package" -#: apps/node_man/constants.py:513 +#: apps/node_man/constants.py:514 msgid "启用插件" msgstr "Enable plugin" -#: apps/node_man/constants.py:513 +#: apps/node_man/constants.py:514 msgid "停用插件" msgstr "Deactivate plugin" -#: apps/node_man/constants.py:682 apps/node_man/constants.py:719 +#: apps/node_man/constants.py:683 apps/node_man/constants.py:720 msgid "作业平台API返回中不存在此IP的日志,请联系管理员排查问题" msgstr "" "The log of this IP does not exist in the API return of the job platform, " "please contact the administrator to troubleshoot the problem" -#: apps/node_man/constants.py:683 apps/node_man/constants.py:697 -#: apps/node_man/constants.py:701 apps/node_man/constants.py:720 +#: apps/node_man/constants.py:684 apps/node_man/constants.py:698 +#: apps/node_man/constants.py:702 apps/node_man/constants.py:721 msgid "Agent异常" msgstr "Agent exception" -#: apps/node_man/constants.py:684 +#: apps/node_man/constants.py:685 msgid "上次已成功" msgstr "Last time was successful" -#: apps/node_man/constants.py:689 apps/node_man/models.py:1422 +#: apps/node_man/constants.py:690 apps/node_man/models.py:1485 msgid "任务失败" msgstr "Task failed" -#: apps/node_man/constants.py:690 apps/node_man/constants.py:726 +#: apps/node_man/constants.py:691 apps/node_man/constants.py:727 msgid "任务下发失败" msgstr "Task delivery failed" -#: apps/node_man/constants.py:691 +#: apps/node_man/constants.py:692 msgid "任务超时" msgstr "Task timed out" -#: apps/node_man/constants.py:692 +#: apps/node_man/constants.py:693 msgid "任务日志错误" msgstr "Task log error" -#: apps/node_man/constants.py:693 +#: apps/node_man/constants.py:694 msgid "脚本执行失败" msgstr "Script execution failed" -#: apps/node_man/constants.py:694 +#: apps/node_man/constants.py:695 msgid "脚本执行超时" msgstr "Script execution timed out" -#: apps/node_man/constants.py:695 +#: apps/node_man/constants.py:696 msgid "脚本执行被终止" msgstr "Script execution terminated" -#: apps/node_man/constants.py:696 +#: apps/node_man/constants.py:697 msgid "脚本返回码非零" msgstr "Script return code is non-zero" -#: apps/node_man/constants.py:699 +#: apps/node_man/constants.py:700 msgid "源文件不存在" msgstr "Source file does not exist" -#: apps/node_man/constants.py:700 +#: apps/node_man/constants.py:701 msgid "文件任务超时" msgstr "File task timed out" -#: apps/node_man/constants.py:702 +#: apps/node_man/constants.py:703 msgid "用户名不存在" msgstr "Username does not exist" -#: apps/node_man/constants.py:703 +#: apps/node_man/constants.py:704 msgid "用户密码错误" msgstr "Incorrect user password" -#: apps/node_man/constants.py:704 +#: apps/node_man/constants.py:705 msgid "文件获取失败" msgstr "Failed to get file" -#: apps/node_man/constants.py:705 +#: apps/node_man/constants.py:706 msgid "文件超出限制" msgstr "File exceeds limit" -#: apps/node_man/constants.py:706 +#: apps/node_man/constants.py:707 msgid "文件传输错误" msgstr "File transfer error" -#: apps/node_man/constants.py:707 +#: apps/node_man/constants.py:708 msgid "任务执行出错" msgstr "Error executing task" -#: apps/node_man/constants.py:708 +#: apps/node_man/constants.py:709 msgid "任务被强制终止" msgstr "Task force terminated" -#: apps/node_man/constants.py:727 +#: apps/node_man/constants.py:728 msgid "任务强制终止成功" msgstr "Task force terminated successfully" -#: apps/node_man/constants.py:728 +#: apps/node_man/constants.py:729 msgid "任务强制终止失败" msgstr "Task force termination failed" -#: apps/node_man/constants.py:740 +#: apps/node_man/constants.py:741 msgid "是,参数将会在执行详情页面上隐藏" msgstr "Yes, the parameter will be hidden on the execution details page" -#: apps/node_man/constants.py:740 +#: apps/node_man/constants.py:741 msgid "否,默认值" msgstr "no, default" -#: apps/node_man/constants.py:751 apps/node_man/constants.py:808 -msgid "业务" -msgstr "Business" - -#: apps/node_man/constants.py:751 +#: apps/node_man/constants.py:752 msgid "业务集" msgstr "Business set" -#: apps/node_man/constants.py:766 +#: apps/node_man/constants.py:767 msgid "shell" msgstr "shell" -#: apps/node_man/constants.py:767 +#: apps/node_man/constants.py:768 msgid "bat" msgstr "bat" -#: apps/node_man/constants.py:768 +#: apps/node_man/constants.py:769 msgid "perl" msgstr "perl" -#: apps/node_man/constants.py:769 +#: apps/node_man/constants.py:770 msgid "python" msgstr "python" -#: apps/node_man/constants.py:770 +#: apps/node_man/constants.py:771 msgid "power_shell" msgstr "power_shell" -#: apps/node_man/constants.py:788 +#: apps/node_man/constants.py:794 msgid "启动进程" msgstr "Start process" -#: apps/node_man/constants.py:789 +#: apps/node_man/constants.py:795 msgid "停止进程" msgstr "Stop process" -#: apps/node_man/constants.py:790 +#: apps/node_man/constants.py:796 msgid "查询进程" msgstr "Query process" -#: apps/node_man/constants.py:791 +#: apps/node_man/constants.py:797 msgid "托管进程" msgstr "Supervised process" -#: apps/node_man/constants.py:792 +#: apps/node_man/constants.py:798 msgid "取消托管进程" msgstr "Unsupervised process" -#: apps/node_man/constants.py:793 +#: apps/node_man/constants.py:799 msgid "重启进程" msgstr "Restart process" -#: apps/node_man/constants.py:794 +#: apps/node_man/constants.py:800 msgid "重载进程" msgstr "Reload process" -#: apps/node_man/constants.py:808 -msgid "集群" -msgstr "Cluster" +#: apps/node_man/constants.py:818 +msgid "未找到" +msgstr "Not Found" -#: apps/node_man/constants.py:808 -msgid "模块" -msgstr "Module" +#: apps/node_man/constants.py:819 +msgid "查询失败" +msgstr "Query failed" + +#: apps/node_man/constants.py:820 +msgid "初始状态" +msgstr "Initial state" + +#: apps/node_man/constants.py:821 +#, fuzzy +#| msgid "启动" +msgid "启动中" +msgstr "Start" + +#: apps/node_man/constants.py:822 apps/node_man/constants.py:839 +#, fuzzy +#| msgid "任务进行中" +msgid "运行中" +msgstr "Task in progress" -#: apps/node_man/constants.py:808 apps/node_man/models.py:1764 +#: apps/node_man/constants.py:823 +msgid "有损状态" +msgstr "Damaged state" + +#: apps/node_man/constants.py:824 +msgid "繁忙状态" +msgstr "Busy state" + +#: apps/node_man/constants.py:825 apps/node_man/constants.py:840 +#, fuzzy +#| msgid "停止" +msgid "已停止" +msgstr "Stop" + +#: apps/node_man/constants.py:826 +#, fuzzy +#| msgid "升级" +msgid "升级中" +msgstr "Upgrading" + +#: apps/node_man/constants.py:853 +#, fuzzy +#| msgid "托管" +msgid "已托管" +msgstr "Autoed" + +#: apps/node_man/constants.py:854 +#, fuzzy +#| msgid "托管" +msgid "未托管" +msgstr "Not auto" + +#: apps/node_man/constants.py:877 +msgid "2.0 Proxy Agent 安装包代号" +msgstr "2.0 Proxy agent Installation package code" + +#: apps/node_man/constants.py:877 +msgid "2.0 Agent 安装包代号" +msgstr "2.0 Agent Installation package code" + +#: apps/node_man/constants.py:888 +msgid "2.0 Proxy 打包根路径" +msgstr "2.0 Proxy package root path" + +#: apps/node_man/constants.py:888 +msgid "2.0 Agent 打包根路径" +msgstr "2.0 Agent package root path" + +#: apps/node_man/constants.py:905 +msgid "证书 CA 内容配置" +msgstr "Certificate CA content configuration" + +#: apps/node_man/constants.py:906 +msgid "Server 侧 CERT 内容配置" +msgstr "Server side CERT content configuration" + +#: apps/node_man/constants.py:907 +msgid "Server 侧 KEY 内容配置" +msgstr "Server side KEY content configuration" + +#: apps/node_man/constants.py:908 +msgid "API 侧 CERT 内容配置, 用于其他服务调用 GSE" +msgstr "API side CERT content configuration, for other services to call GSE" + +#: apps/node_man/constants.py:909 +msgid "API 侧 KEY 内容配置, 用于其他服务调用 GSE" +msgstr "API side KEY content configuration, for other services to call GSE" + +#: apps/node_man/constants.py:910 +msgid "Agent 侧 CERT 内容配置, 用于 Agent 链路" +msgstr "Agent side CERT content configuration, for the Agent link" + +#: apps/node_man/constants.py:911 +msgid "Agent 侧 KEY 内容配置, 用于 Agent 链路" +msgstr "Agent side KEY content configuration, for the Agent link" + +#: apps/node_man/constants.py:930 apps/node_man/models.py:1841 msgid "主机" msgstr "Host" -#: apps/node_man/constants.py:808 +#: apps/node_man/constants.py:930 msgid "自定义" msgstr "Custom" -#: apps/node_man/constants.py:820 +#: apps/node_man/constants.py:941 +#, fuzzy +#| msgid "静态实例" +msgid "静态" +msgstr "Static" + +#: apps/node_man/constants.py:941 +#, fuzzy +#| msgid "状态" +msgid "动态" +msgstr "Dynamic" + +#: apps/node_man/constants.py:952 +msgid "IPv4" +msgstr "IPv4" + +#: apps/node_man/constants.py:952 +msgid "IPv6" +msgstr "IPv6" + +#: apps/node_man/constants.py:973 msgid "检测 BT 分发策略(下发Py36包)" msgstr "Detect BT distribution strategy (distribute Py36 package)" -#: apps/node_man/constants.py:844 +#: apps/node_man/constants.py:987 msgid "下发安装工具" msgstr "transfer installation tool" +#: apps/node_man/constants.py:1012 +msgid "数据传输工具, 用于下载文件依赖" +msgstr "Data transmission tools for download file dependencies" + +#: apps/node_man/constants.py:1013 +msgid "用户赋权工具" +msgstr "User Empowerment Tool" + +#: apps/node_man/constants.py:1015 +msgid "libcurl 共享库, 补丁文件" +msgstr "libcurl sharing library, patch file" + +#: apps/node_man/constants.py:1016 +msgid "UNIX 时间工具包" +msgstr "Unix Time Tool Pack" + +#: apps/node_man/constants.py:1017 +msgid "命令行 JSON 处理器" +msgstr "Command line JSON processor" + +#: apps/node_man/constants.py:1018 +msgid "base64 工具包" +msgstr "base64 tools package" + +#: apps/node_man/constants.py:1028 +msgid "Windows 批处理脚本" +msgstr "Windows batch script" + +#: apps/node_man/constants.py:1028 +msgid "bash" +msgstr "bash" + +#: apps/node_man/constants.py:1037 +msgid "依赖文件" +msgstr "dependent file" + +msgid "命令" +msgstr "Command" + #: apps/node_man/exceptions.py:21 msgid "云区域不存在" msgstr "Cloud area does not exist" @@ -2519,8 +3365,8 @@ msgid "接入点不支持此机器的操作系统." msgstr "The access point does not support this machine's operating system." #: apps/node_man/exceptions.py:178 -#, python-brace-format -msgid "接入点不[{ap_id}]支持此机器的操作系统[{os_type}]" +#, fuzzy, python-brace-format +msgid "接入点[{ap_id}]不支持此机器的操作系统[{os_type}]" msgstr "Access point [{ap_id}] does not support this machine's OS [{os_type}]" #: apps/node_man/exceptions.py:183 @@ -2551,33 +3397,36 @@ msgstr "Access address unreachable" msgid "插件配置未变更,无需执行" msgstr "Plugin configuration has not changed, no need to execute" +msgid "远程采集主机不存在" +msgstr "Remote collect host does not exist" + #: apps/node_man/handlers/cloud.py:46 apps/node_man/handlers/permission.py:109 #, python-brace-format msgid "不存在ID为: {bk_cloud_id} 的云区域" msgstr "No cloud area with id: {bk_cloud_id}" -#: apps/node_man/handlers/cloud.py:50 apps/node_man/handlers/cloud.py:137 +#: apps/node_man/handlers/cloud.py:50 apps/node_man/handlers/cloud.py:139 msgid "自动选择接入点" msgstr "Auto select access point" -#: apps/node_man/handlers/cloud.py:197 +#: apps/node_man/handlers/cloud.py:209 msgid "云区域不可名为直连区域" msgstr "The cloud area cannot be named as a directly connected area" -#: apps/node_man/handlers/cloud.py:201 apps/node_man/handlers/cloud.py:229 +#: apps/node_man/handlers/cloud.py:213 apps/node_man/handlers/cloud.py:241 msgid "云区域名称不可重复" msgstr "cloud area name cannot be repeated" -#: apps/node_man/handlers/cloud.py:218 apps/node_man/handlers/policy.py:536 -#: apps/node_man/views/ap.py:247 +#: apps/node_man/handlers/cloud.py:230 apps/node_man/handlers/policy.py:579 +#: apps/node_man/views/ap.py:266 msgid "权限中心创建关联权限失败: {}" msgstr "Permission Center failed to create associated permissions: {}" -#: apps/node_man/handlers/cloud.py:247 +#: apps/node_man/handlers/cloud.py:259 msgid "该区域已存在主机" msgstr "Host already exists in this area" -#: apps/node_man/handlers/cmdb.py:389 +#: apps/node_man/handlers/cmdb.py:336 msgid "在CMDB中,还有主机关联到当前云区域下,无法删除" msgstr "" "In the CMDB, there are hosts associated with the current cloud area and " @@ -2594,7 +3443,7 @@ msgstr "" "Please check whether the esb and corresponding component services are normal" #: apps/node_man/handlers/healthz/saas_healthz.py:114 -#: apps/node_man/serializers/job.py:28 pipeline/engine/models/core.py:876 +#: apps/node_man/serializers/job.py:64 pipeline/engine/models/core.py:876 msgid "状态" msgstr "status" @@ -2648,42 +3497,32 @@ msgstr "Failed to find the host under the service, host query result: %s" msgid "job中没有此接口" msgstr "no such interface in job" -#: apps/node_man/handlers/host.py:626 apps/node_man/handlers/permission.py:410 +#: apps/node_man/handlers/host.py:415 apps/node_man/handlers/permission.py:410 #, python-brace-format msgid "Host ID:{bk_host_id} 不存在" msgstr "Host ID: {bk_host_id} does not exist" -#: apps/node_man/handlers/host.py:634 +#: apps/node_man/handlers/host.py:423 #, python-brace-format msgid "外网IP:{outer_ip} 已被占用" msgstr "External IP: {outer_ip} is occupied" -#: apps/node_man/handlers/host.py:639 +#: apps/node_man/handlers/host.py:428 #, python-brace-format msgid "登录IP:{login_ip} 已被占用" msgstr "Login IP: {login_ip} is occupied" -#: apps/node_man/handlers/host.py:647 +#: apps/node_man/handlers/host.py:436 #, python-brace-format msgid "Ap_id:{ap_id} 不存在于数据库." msgstr "Ap_id:{ap_id} does not exist in the database." -#: apps/node_man/handlers/host.py:743 -#, python-brace-format -msgid "主机 {diff} 不存在" -msgstr "host {diff} does not exist" - -#: apps/node_man/handlers/host.py:744 -#, python-brace-format -msgid "您没有移除主机 {ips} 的权限" -msgstr "You do not have permission to remove host {ips}" - #: apps/node_man/handlers/job.py:48 apps/node_man/handlers/permission.py:390 #, python-brace-format msgid "不存在ID为{job_id}的任务" msgstr "No job with id {job_id} exists" -#: apps/node_man/handlers/job.py:829 +#: apps/node_man/handlers/job.py:742 msgid "没有需要变更的实例" msgstr "No instance to change" @@ -2697,95 +3536,94 @@ msgstr "Manual" msgid "远程" msgstr "Remote" -#: apps/node_man/handlers/meta.py:167 apps/node_man/handlers/meta.py:288 -#: apps/node_man/handlers/meta.py:353 apps/node_man/models.py:319 -#: apps/node_man/models.py:322 apps/node_man/models.py:1589 -#: apps/node_man/serializers/job.py:55 +#: apps/node_man/handlers/meta.py:171 apps/node_man/handlers/meta.py:294 +#: apps/node_man/handlers/meta.py:365 apps/node_man/models.py:339 +#: apps/node_man/models.py:1652 apps/node_man/serializers/job.py:100 msgid "操作系统" msgstr "Operating system" -#: apps/node_man/handlers/meta.py:167 +#: apps/node_man/handlers/meta.py:171 msgid "其它" msgstr "other" -#: apps/node_man/handlers/meta.py:168 apps/node_man/handlers/meta.py:302 -#: apps/node_man/handlers/meta.py:367 +#: apps/node_man/handlers/meta.py:172 apps/node_man/handlers/meta.py:308 +#: apps/node_man/handlers/meta.py:378 msgid "Agent状态" msgstr "Agent Status" -#: apps/node_man/handlers/meta.py:169 +#: apps/node_man/handlers/meta.py:173 msgid "安装方式" msgstr "Install method" -#: apps/node_man/handlers/meta.py:170 apps/node_man/handlers/meta.py:295 -#: apps/node_man/handlers/meta.py:419 apps/node_man/serializers/host.py:22 -#: apps/node_man/serializers/host.py:73 apps/node_man/serializers/job.py:147 +#: apps/node_man/handlers/meta.py:174 apps/node_man/handlers/meta.py:301 +#: apps/node_man/handlers/meta.py:430 apps/node_man/serializers/host.py:23 +#: apps/node_man/serializers/host.py:78 apps/node_man/serializers/job.py:231 #: apps/node_man/serializers/plugin.py:199 -#: apps/node_man/serializers/plugin.py:230 +#: apps/node_man/serializers/plugin.py:234 msgid "Agent版本" msgstr "Agent version" -#: apps/node_man/handlers/meta.py:171 apps/node_man/handlers/meta.py:278 -#: apps/node_man/handlers/meta.py:351 +#: apps/node_man/handlers/meta.py:175 apps/node_man/handlers/meta.py:284 +#: apps/node_man/handlers/meta.py:363 msgid "云区域" msgstr "Cloud area" -#: apps/node_man/handlers/meta.py:172 apps/node_man/models.py:328 +#: apps/node_man/handlers/meta.py:176 apps/node_man/handlers/meta.py:357 +#: apps/node_man/serializers/job.py:86 +msgid "寻址方式" +msgstr "Addressing mode" + +#: apps/node_man/handlers/meta.py:177 apps/node_man/models.py:349 msgid "安装通道" msgstr "Install channel" -#: apps/node_man/handlers/meta.py:173 +#: apps/node_man/handlers/meta.py:179 msgid "IP" msgstr "IP" -#: apps/node_man/handlers/meta.py:250 apps/node_man/models.py:2144 -#: apps/node_man/serializers/debug.py:21 apps/node_man/serializers/job.py:27 -msgid "任务ID" -msgstr "Task ID" - -#: apps/node_man/handlers/meta.py:251 apps/node_man/serializers/job.py:29 +#: apps/node_man/handlers/meta.py:257 apps/node_man/serializers/job.py:65 #: pipeline/models.py:618 msgid "执行者" msgstr "Executor" -#: apps/node_man/handlers/meta.py:252 +#: apps/node_man/handlers/meta.py:258 msgid "执行状态" msgstr "Task status" -#: apps/node_man/handlers/meta.py:253 apps/node_man/serializers/job.py:112 -#: apps/node_man/serializers/job.py:145 apps/node_man/serializers/plugin.py:227 +#: apps/node_man/handlers/meta.py:259 apps/node_man/serializers/job.py:176 +#: apps/node_man/serializers/job.py:229 apps/node_man/serializers/plugin.py:231 #: apps/node_man/serializers/plugin_v2.py:199 -#: apps/node_man/serializers/policy.py:126 +#: apps/node_man/serializers/policy.py:152 msgid "任务类型" msgstr "Task type" -#: apps/node_man/handlers/meta.py:254 apps/node_man/serializers/iam.py:19 -#: apps/node_man/serializers/job.py:117 apps/node_man/serializers/policy.py:142 +#: apps/node_man/handlers/meta.py:260 apps/node_man/serializers/iam.py:19 +#: apps/node_man/serializers/job.py:183 apps/node_man/serializers/policy.py:168 msgid "操作类型" msgstr "Operation type" -#: apps/node_man/handlers/meta.py:255 +#: apps/node_man/handlers/meta.py:261 msgid "策略名称" msgstr "Policy name" -#: apps/node_man/handlers/meta.py:316 apps/node_man/handlers/meta.py:434 +#: apps/node_man/handlers/meta.py:322 apps/node_man/handlers/meta.py:445 msgid "无版本" msgstr "No version" -#: apps/node_man/handlers/meta.py:318 apps/node_man/handlers/meta.py:440 +#: apps/node_man/handlers/meta.py:324 apps/node_man/handlers/meta.py:451 msgid "{}状态" msgstr "{}status" -#: apps/node_man/handlers/meta.py:378 apps/node_man/models.py:324 -#: apps/node_man/models.py:1797 apps/node_man/serializers/job.py:118 -#: apps/node_man/serializers/job.py:154 apps/node_man/serializers/plugin.py:241 +#: apps/node_man/handlers/meta.py:389 apps/node_man/models.py:345 +#: apps/node_man/models.py:1874 apps/node_man/serializers/job.py:184 +#: apps/node_man/serializers/job.py:239 apps/node_man/serializers/plugin.py:245 msgid "节点类型" msgstr "Node type" -#: apps/node_man/handlers/meta.py:432 +#: apps/node_man/handlers/meta.py:443 #, python-brace-format msgid "{name}版本" -msgstr "" +msgstr "{name} version" #: apps/node_man/handlers/permission.py:38 #: apps/node_man/handlers/permission.py:89 @@ -2838,29 +3676,24 @@ msgstr "" msgid "您没有查询Debug接口的权限" msgstr "You do not have permission to query the Debug interface" -#: apps/node_man/handlers/permission.py:197 -#: apps/node_man/handlers/permission.py:258 -msgid "您没有该操作的权限" -msgstr "You do not have permission for this operation" - #: apps/node_man/handlers/permission.py:323 msgid "【资源池】业务暂不支持从权限中心申请,请在admin中将用户添加为superuser" msgstr "" "[Resource pool] service does not currently support application from the " "permission center, please add the user as superuser in admin" -#: apps/node_man/handlers/plugin_v2.py:206 +#: apps/node_man/handlers/plugin_v2.py:136 #, python-brace-format msgid "插件配置模板{ids}不存在或已下线" msgstr "Plugin configuration template {ids} does not exist or is offline" -#: apps/node_man/handlers/policy.py:81 apps/node_man/serializers/policy.py:149 -#: apps/node_man/tools/policy.py:38 +#: apps/node_man/handlers/policy.py:86 apps/node_man/serializers/policy.py:175 +#: apps/node_man/tools/policy.py:36 #, python-brace-format msgid "不存在ID为: {id} 的策略" msgstr "Policy with id: {id} does not exist" -#: apps/node_man/handlers/policy.py:654 +#: apps/node_man/handlers/policy.py:703 #, python-brace-format msgid "" "{plugin_name}: {plugin_description} - V{version} \n" @@ -2869,85 +3702,63 @@ msgstr "" "{plugin_name}: {plugin_description} - V{version} \n" "This version supports {plugin_scenario}" -#: apps/node_man/handlers/validator.py:226 +#: apps/node_man/handlers/validator.py:229 msgid "修改了认证类型为秘钥认证,但是没有输入认证凭证" msgstr "" "Modified authentication type to key authentication, but no authentication " "credentials have been entered" -#: apps/node_man/handlers/validator.py:230 +#: apps/node_man/handlers/validator.py:233 msgid "修改了认证类型为密码认证,但是没有输入密码" msgstr "" "Modified authentication type to password authentication, but no password was " "entered" -#: apps/node_man/handlers/validator.py:243 +#: apps/node_man/handlers/validator.py:246 msgid "认证信息已过期,请输入相关认证信息" msgstr "" "The authentication information has expired, please enter the relevant " "authentication information" -#: apps/node_man/handlers/validator.py:315 -#, python-brace-format -msgid "主机(IP:{ip}) 没有操作系统, 请【重装】并补全相关信息" -msgstr "" -"The host (IP:{ip}) has no operating system, please [reinstall] and complete " -"the relevant information" - -#: apps/node_man/handlers/validator.py:319 -#, python-brace-format -msgid "云区域(ID:{bk_cloud_id}) 不存在" -msgstr "The cloud area (ID:{bk_cloud_id}) does not exist" - -#: apps/node_man/handlers/validator.py:323 -#, python-brace-format -msgid "{cloud_name} 是直连区域,不可以安装PROXY" -msgstr "{cloud_name} is a directly connected area, PROXY cannot be installed" - -#: apps/node_man/handlers/validator.py:332 -msgid "该云区域下不存在代理" -msgstr "No agent exists in this cloud area" - -#: apps/node_man/handlers/validator.py:340 -msgid "直连区域必须选择接入点" -msgstr "Access point must be selected for direct area" - -#: apps/node_man/handlers/validator.py:344 +#: apps/node_man/handlers/validator.py:317 #, python-brace-format -msgid "接入点(id:{ap_id})不存在" -msgstr "Access point (id: {ap_id}) does not exist" +msgid "已有 Agent 存活的动态寻址主机【bk_host_id: {bk_host_id}】位于所选云区域:{bk_cloud_name},业务:{bk_biz_name}" +msgstr "The dynamic addressing host of Agent [bk_host_id: {bk_host_id}] is located in the selected cloud area: {bk_cloud_name}, business: {bk_biz_name}" -#: apps/node_man/handlers/validator.py:355 -#, python-brace-format +#: apps/node_man/handlers/validator.py:335 +#, fuzzy, python-brace-format msgid "" "\n" -" 该主机内网IP已存在于所选云区域:{cloud_name} 下,\n" -" 业务:{bk_biz_id},\n" -" 节点类型:{node_type}\n" -" " +" 该主机内网IP已存在于所选云区域:{bk_cloud_name} 下,\n" +" 业务:{bk_biz_name},\n" +" 节点类型:{node_type}\n" +" " msgstr "" "\n" " The host's intranet IP already exists in the selected cloud " -"area: {cloud_name},\n" -" Business: {bk_biz_id},\n" +"area: {bk_cloud_name},\n" +" Business: {bk_biz_name},\n" " Node type: {node_type}\n" " " -#: apps/node_man/handlers/validator.py:375 +#: apps/node_man/handlers/validator.py:352 +#, python-brace-format +msgid "" +"该主机(bk_host_id:{bk_host_id}) 已存在且 IP 信息为:IPv4({ipv4}), " +"IPv6({ipv6}),不允许修改为 IPv4({ipv4}), IPv6({to_be_add_ipv6})" +msgstr "The host (bk_host_id:{bk_host_id}) already exists and the IP information is: IPv4({ipv4}), IPv6({ipv6}), it is not allowed to change to IPv4({ipv4}), IPv6({to_be_add_ipv6})" + +#: apps/node_man/handlers/validator.py:379 #, python-brace-format msgid "尚未被安装,无法执行 {op_type} 操作" msgstr "Not installed, cannot perform {op_type} operation" -#: apps/node_man/handlers/validator.py:383 +#: apps/node_man/handlers/validator.py:389 #, python-brace-format msgid "Host ID 不正确,无法执行 {op_type} 操作" msgstr "Incorrect Host ID for {op_type} operation" -#: apps/node_man/handlers/validator.py:394 -msgid "正在执行其他任务,无法执行新任务" -msgstr "Another task is being executed, new task cannot be executed" - -#: apps/node_man/handlers/validator.py:403 +#: apps/node_man/handlers/validator.py:397 #, python-brace-format msgid "" "节点类型不正确,该主机是 {host_node_type}, 而请求的操作类型是 {node_type}" @@ -2955,1157 +3766,1192 @@ msgstr "" "Incorrect node type, the host is {host_node_type}, and the requested " "operation type is {node_type}" -#: apps/node_man/handlers/validator.py:432 +#: apps/node_man/handlers/validator.py:485 +#, python-brace-format +msgid "主机(IP:{ip}) 没有操作系统, 请【重装】并补全相关信息" +msgstr "The host (IP:{ip}) has no operating system, please [reinstall] and complete the relevant information" + +#: apps/node_man/handlers/validator.py:489 +#, python-brace-format +msgid "云区域(ID:{bk_cloud_id}) 不存在" +msgstr "The cloud area (ID:{bk_cloud_id}) does not exist" + +#: apps/node_man/handlers/validator.py:494 +#, fuzzy, python-brace-format +#| msgid "{cloud_name} 是直连区域,不可以安装PROXY" +msgid "{bk_cloud_name} 是直连区域,不可以安装PROXY" +msgstr "{bk_cloud_name} is default cloud area, PROXY cannot be installed" + +#: apps/node_man/handlers/validator.py:504 +msgid "该云区域下不存在代理" +msgstr "No Proxy exists in this cloud area" + +#: apps/node_man/handlers/validator.py:512 +msgid "直连区域必须选择接入点" +msgstr "Access point must be selected for default cloud area" + +#: apps/node_man/handlers/validator.py:516 +#, python-brace-format +msgid "接入点(id:{ap_id})不存在" +msgstr "Access point (id: {ap_id}) does not exist" + +#: apps/node_man/handlers/validator.py:565 #, python-brace-format msgid "主机(IP:{inner_ip}) 没有操作系统, 请【重装】并补全相关信息" msgstr "" "The host (IP:{inner_ip}) has no operating system, please [reinstall] and " "complete the relevant information" -#: apps/node_man/handlers/validator.py:436 +#: apps/node_man/handlers/validator.py:569 msgid "不允许操作【云区域不存在】的主机, 云区域id: {}" msgstr "" "Not allowed to operate the host of [cloud area does not exist], cloud area " "id: {}" -#: apps/node_man/models.py:102 +#: apps/node_man/models.py:116 msgid "键" msgstr "Key" -#: apps/node_man/models.py:103 +#: apps/node_man/models.py:117 msgid "值" msgstr "Value" -#: apps/node_man/models.py:139 apps/node_man/models.py:140 +#: apps/node_man/models.py:153 apps/node_man/models.py:154 msgid "配置表(GlobalSettings)" msgstr "Configuration Table (GlobalSettings)" -#: apps/node_man/models.py:158 +#: apps/node_man/models.py:172 #, python-brace-format msgid "后台获取密钥失败:{e}" msgstr "Failed to get key in background: {e}" -#: apps/node_man/models.py:169 +#: apps/node_man/models.py:183 #, python-brace-format msgid "SaaS获取密钥失败:{e}" msgstr "SaaS failed to get key: {e}" -#: apps/node_man/models.py:291 apps/node_man/models.py:506 -#: apps/node_man/models.py:866 apps/node_man/serializers/debug.py:25 -#: apps/node_man/serializers/host.py:20 apps/node_man/serializers/host.py:41 -#: apps/node_man/serializers/host.py:70 apps/node_man/serializers/host_v2.py:28 -#: apps/node_man/serializers/job.py:48 apps/node_man/serializers/job.py:149 -#: apps/node_man/serializers/job.py:213 apps/node_man/serializers/plugin.py:196 -#: apps/node_man/serializers/plugin.py:236 +#: apps/node_man/models.py:305 apps/node_man/models.py:542 +#: apps/node_man/models.py:922 apps/node_man/serializers/ap.py:74 +#: apps/node_man/serializers/debug.py:25 apps/node_man/serializers/host.py:21 +#: apps/node_man/serializers/host.py:42 apps/node_man/serializers/host.py:75 +#: apps/node_man/serializers/host_v2.py:28 apps/node_man/serializers/job.py:84 +#: apps/node_man/serializers/job.py:233 apps/node_man/serializers/job.py:300 +#: apps/node_man/serializers/plugin.py:196 +#: apps/node_man/serializers/plugin.py:240 #: apps/node_man/serializers/plugin_v2.py:174 -#: apps/node_man/serializers/policy.py:137 +#: apps/node_man/serializers/policy.py:163 msgid "主机ID" msgstr "Host ID" -#: apps/node_man/models.py:293 apps/node_man/serializers/host.py:50 -#: apps/node_man/serializers/job.py:56 +#: apps/node_man/models.py:307 apps/node_man/serializers/host.py:54 +#: apps/node_man/serializers/job.py:101 msgid "认证类型" msgstr "Auth type" -#: apps/node_man/models.py:295 +#: apps/node_man/models.py:309 msgid "账户名" msgstr "Account name" -#: apps/node_man/models.py:296 apps/node_man/models.py:628 -#: apps/node_man/serializers/host.py:51 apps/node_man/serializers/job.py:58 +#: apps/node_man/models.py:310 apps/node_man/models.py:620 +#: apps/node_man/serializers/host.py:55 apps/node_man/serializers/job.py:103 msgid "密码" msgstr "Password" -#: apps/node_man/models.py:297 apps/node_man/serializers/job.py:59 +#: apps/node_man/models.py:311 apps/node_man/serializers/job.py:104 msgid "端口" msgstr "Port" -#: apps/node_man/models.py:298 apps/node_man/serializers/job.py:60 +#: apps/node_man/models.py:312 apps/node_man/serializers/job.py:105 msgid "密钥" msgstr "Key" -#: apps/node_man/models.py:299 +#: apps/node_man/models.py:313 msgid "额外认证资料" msgstr "Additional credentials" -#: apps/node_man/models.py:300 +#: apps/node_man/models.py:314 msgid "保留天数" msgstr "Retention days" -#: apps/node_man/models.py:304 apps/node_man/models.py:305 +#: apps/node_man/models.py:318 apps/node_man/models.py:319 msgid "临时认证数据(IdentityData)" msgstr "Temporary IdentityData" -#: apps/node_man/models.py:309 +#: apps/node_man/models.py:323 msgid "CMDB主机ID" msgstr "CMDB host ID" -#: apps/node_man/models.py:311 apps/node_man/models.py:827 -#: apps/node_man/serializers/host.py:21 apps/node_man/serializers/host.py:33 -#: apps/node_man/serializers/host.py:42 -#: apps/node_man/serializers/install_channel.py:20 -#: apps/node_man/serializers/job.py:47 apps/node_man/serializers/plugin.py:197 -#: apps/node_man/serializers/plugin.py:229 +#: apps/node_man/models.py:324 +#, fuzzy +#| msgid "Agent" +msgid "AgentID" +msgstr "Agent" + +#: apps/node_man/models.py:326 apps/node_man/models.py:841 +#: apps/node_man/serializers/host.py:22 apps/node_man/serializers/host.py:34 +#: apps/node_man/serializers/host.py:43 +#: apps/node_man/serializers/install_channel.py:22 +#: apps/node_man/serializers/job.py:83 apps/node_man/serializers/plugin.py:197 +#: apps/node_man/serializers/plugin.py:233 msgid "云区域ID" msgstr "Cloud area ID" -#: apps/node_man/models.py:313 apps/node_man/serializers/ap.py:68 -#: apps/node_man/serializers/host.py:43 apps/node_man/serializers/job.py:51 -msgid "内网IP" -msgstr "Intranet IP" - -#: apps/node_man/models.py:314 apps/node_man/serializers/ap.py:69 -#: apps/node_man/serializers/host.py:44 apps/node_man/serializers/job.py:52 +#: apps/node_man/models.py:331 apps/node_man/serializers/ap.py:72 +#: apps/node_man/serializers/host.py:46 apps/node_man/serializers/job.py:94 msgid "外网IP" msgstr "External IP" -#: apps/node_man/models.py:315 apps/node_man/serializers/host.py:45 -#: apps/node_man/serializers/job.py:53 +#: apps/node_man/models.py:332 apps/node_man/serializers/host.py:49 +#: apps/node_man/serializers/job.py:95 msgid "登录IP" msgstr "Login IP" -#: apps/node_man/models.py:316 apps/node_man/serializers/host.py:46 -#: apps/node_man/serializers/job.py:54 +#: apps/node_man/models.py:333 apps/node_man/serializers/host.py:50 +#: apps/node_man/serializers/job.py:96 msgid "数据IP" msgstr "Data IP" -#: apps/node_man/models.py:325 +#: apps/node_man/models.py:336 apps/node_man/serializers/ap.py:73 +#: apps/node_man/serializers/host.py:47 apps/node_man/serializers/job.py:98 +#, fuzzy +#| msgid "外网IP" +msgid "外网IPv6" +msgstr "External IPv6" + +#: apps/node_man/models.py:342 apps/node_man/models.py:1655 +msgid "CPU架构" +msgstr "CPU Architecture" + +#: apps/node_man/models.py:344 +#, fuzzy +#| msgid "操作系统" +msgid "操作系统版本" +msgstr "Operating system version" + +#: apps/node_man/models.py:346 msgid "节点来源" msgstr "Node source" -#: apps/node_man/models.py:326 +#: apps/node_man/models.py:347 msgid "是否手动安装" msgstr "Is manual" -#: apps/node_man/models.py:329 apps/node_man/models.py:796 -#: apps/node_man/serializers/ap.py:25 apps/node_man/serializers/cloud.py:30 -#: apps/node_man/serializers/host.py:49 apps/node_man/serializers/job.py:49 +#: apps/node_man/models.py:350 apps/node_man/models.py:810 +#: apps/node_man/serializers/ap.py:27 apps/node_man/serializers/cloud.py:30 +#: apps/node_man/serializers/host.py:53 apps/node_man/serializers/job.py:91 msgid "接入点ID" msgstr "Access Point ID" -#: apps/node_man/models.py:330 apps/node_man/models.py:829 -#: apps/node_man/serializers/install_channel.py:30 +#: apps/node_man/models.py:351 apps/node_man/models.py:843 +#: apps/node_man/serializers/install_channel.py:32 msgid "上游节点" msgstr "Upstream node" -#: apps/node_man/models.py:335 +#: apps/node_man/models.py:356 msgid "额外数据" msgstr "Extra data" -#: apps/node_man/models.py:361 -#, python-brace-format -msgid "{bk_host_id}| 主机信息不存在" -msgstr "{bk_host_id}| host information does not exist" +#: apps/node_man/models.py:379 +#, fuzzy, python-brace-format +msgid "bk_host_id={bk_host_id} 主机信息不存在" +msgstr "bk_host_id={bk_host_id} host information does not exist" -#: apps/node_man/models.py:371 -#, python-brace-format -msgid "{ip}|{bk_cloud_id} 主机信息不存在" -msgstr "{ip}|{bk_cloud_id} host information does not exist" +#: apps/node_man/models.py:399 +#, fuzzy, python-brace-format +#| msgid "{ip}|{bk_cloud_id} 主机信息不存在" +msgid "{bk_cloud_id}:{ip} 主机信息不存在" +msgstr "{bk_cloud_id}:{ip} host information does not exist" -#: apps/node_man/models.py:388 +#: apps/node_man/models.py:415 msgid "主机所属云区域不存在可用Proxy" msgstr "" "There is no available proxy in the cloud area to which the host belongs" -#: apps/node_man/models.py:426 +#: apps/node_man/models.py:462 #, python-brace-format msgid "安装节点主机{inner_ip}不存在,请确认是否已安装AGENT" msgstr "" "The installation node host {inner_ip} does not exist, please confirm whether " "AGENT is installed" -#: apps/node_man/models.py:488 apps/node_man/models.py:489 +#: apps/node_man/models.py:524 apps/node_man/models.py:525 msgid "主机(Host)" msgstr "Host" -#: apps/node_man/models.py:500 +#: apps/node_man/models.py:536 msgid "默认" msgstr "Default" -#: apps/node_man/models.py:507 +#: apps/node_man/models.py:543 msgid "进程名称" msgstr "Process name" -#: apps/node_man/models.py:509 +#: apps/node_man/models.py:545 msgid "进程状态" msgstr "Process status" -#: apps/node_man/models.py:516 +#: apps/node_man/models.py:552 msgid "是否自动启动" msgstr "Whether to start automatically" -#: apps/node_man/models.py:518 +#: apps/node_man/models.py:554 msgid "进程版本" msgstr "Process version" -#: apps/node_man/models.py:520 +#: apps/node_man/models.py:556 msgid "进程类型" msgstr "Process type" -#: apps/node_man/models.py:523 +#: apps/node_man/models.py:559 msgid "配置文件" msgstr "Config file" -#: apps/node_man/models.py:524 +#: apps/node_man/models.py:560 msgid "监听IP" msgstr "Listening IP" -#: apps/node_man/models.py:525 +#: apps/node_man/models.py:561 msgid "监听端口" msgstr "Listening port" -#: apps/node_man/models.py:527 +#: apps/node_man/models.py:563 msgid "二进制文件所在路径" msgstr "Path to binary file" -#: apps/node_man/models.py:528 apps/node_man/models.py:1217 +#: apps/node_man/models.py:564 apps/node_man/models.py:1280 msgid "日志路径" msgstr "Log path" -#: apps/node_man/models.py:529 apps/node_man/models.py:1218 -#: apps/node_man/serializers/host.py:55 apps/node_man/serializers/job.py:65 +#: apps/node_man/models.py:565 apps/node_man/models.py:1281 +#: apps/node_man/serializers/host.py:59 apps/node_man/serializers/job.py:110 msgid "数据文件路径" msgstr "Data file path" -#: apps/node_man/models.py:530 apps/node_man/models.py:1219 +#: apps/node_man/models.py:566 apps/node_man/models.py:1282 msgid "pid文件路径" msgstr "Pid file path" -#: apps/node_man/models.py:532 +#: apps/node_man/models.py:568 msgid "插件组ID" msgstr "Plugin Group ID" -#: apps/node_man/models.py:534 +#: apps/node_man/models.py:570 msgid "来源类型" msgstr "Source type" -#: apps/node_man/models.py:536 +#: apps/node_man/models.py:572 msgid "来源ID" msgstr "Source ID" -#: apps/node_man/models.py:539 apps/node_man/models.py:1557 -msgid "CMDB对象ID" -msgstr "CMDB object ID" - -#: apps/node_man/models.py:540 +#: apps/node_man/models.py:576 msgid "是否是最新记录" msgstr "Is it the latest record" -#: apps/node_man/models.py:571 -msgid "获取主机失败: {}" -msgstr "Failed to get host: {}" - -#: apps/node_man/models.py:588 -msgid "获取插件信息失败: {}-{}-{}" -msgstr "Failed to get plugin info: {}-{}-{}" - -#: apps/node_man/models.py:614 apps/node_man/models.py:615 +#: apps/node_man/models.py:606 apps/node_man/models.py:607 msgid "进程状态(ProcessStatus)" msgstr "ProcessStatus" -#: apps/node_man/models.py:619 apps/node_man/serializers/ap.py:26 +#: apps/node_man/models.py:611 apps/node_man/serializers/ap.py:28 msgid "接入点名称" msgstr "Access Point Name" -#: apps/node_man/models.py:620 apps/node_man/serializers/ap.py:27 +#: apps/node_man/models.py:612 apps/node_man/serializers/ap.py:29 msgid "接入点类型" msgstr "Access Point Type" -#: apps/node_man/models.py:621 apps/node_man/serializers/ap.py:28 +#: apps/node_man/models.py:613 apps/node_man/serializers/ap.py:30 msgid "区域id" msgstr "Area id" -#: apps/node_man/models.py:622 apps/node_man/serializers/ap.py:29 +#: apps/node_man/models.py:614 apps/node_man/serializers/ap.py:31 msgid "城市id" msgstr "City id" -#: apps/node_man/models.py:623 apps/node_man/serializers/ap.py:30 +#: apps/node_man/models.py:615 apps/node_man/serializers/ap.py:32 msgid "GSE BT文件服务器列表" msgstr "GSE BT file server list" -#: apps/node_man/models.py:624 apps/node_man/serializers/ap.py:31 +#: apps/node_man/models.py:616 apps/node_man/serializers/ap.py:33 msgid "GSE 数据服务器列表" msgstr "GSE Data Server List" -#: apps/node_man/models.py:625 apps/node_man/serializers/ap.py:32 +#: apps/node_man/models.py:617 apps/node_man/serializers/ap.py:34 msgid "GSE 任务服务器列表" msgstr "GSE Task Server List" -#: apps/node_man/models.py:626 apps/node_man/serializers/ap.py:33 +#: apps/node_man/models.py:618 apps/node_man/serializers/ap.py:35 msgid "ZK服务器列表" msgstr "ZK server list" -#: apps/node_man/models.py:627 apps/node_man/serializers/ap.py:34 -#: apps/node_man/serializers/ap.py:79 +#: apps/node_man/models.py:619 apps/node_man/serializers/ap.py:36 +#: apps/node_man/serializers/ap.py:93 msgid "ZK账号" msgstr "ZK account" -#: apps/node_man/models.py:629 apps/node_man/serializers/ap.py:35 +#: apps/node_man/models.py:621 apps/node_man/serializers/ap.py:37 msgid "安装包内网地址" msgstr "Installation package intranet address" -#: apps/node_man/models.py:630 apps/node_man/serializers/ap.py:36 +#: apps/node_man/models.py:622 apps/node_man/serializers/ap.py:38 msgid "安装包外网地址" msgstr "Installation package external network address" -#: apps/node_man/models.py:632 +#: apps/node_man/models.py:624 msgid "Nginx路径" msgstr "Nginx path" -#: apps/node_man/models.py:633 apps/node_man/serializers/ap.py:37 +#: apps/node_man/models.py:625 apps/node_man/serializers/ap.py:39 msgid "Agent配置信息" msgstr "Agent configuration information" -#: apps/node_man/models.py:634 apps/node_man/serializers/ap.py:38 +#: apps/node_man/models.py:626 apps/node_man/serializers/ap.py:40 msgid "接入点状态" msgstr "Access Point Status" -#: apps/node_man/models.py:635 apps/node_man/serializers/ap.py:39 -#: apps/node_man/serializers/ap.py:82 +#: apps/node_man/models.py:627 apps/node_man/serializers/ap.py:41 +#: apps/node_man/serializers/ap.py:96 msgid "接入点描述" msgstr "Access Point Description" -#: apps/node_man/models.py:636 apps/node_man/serializers/ap.py:40 +#: apps/node_man/models.py:628 apps/node_man/serializers/ap.py:42 msgid "是否启用" msgstr "Enable" -#: apps/node_man/models.py:637 apps/node_man/serializers/ap.py:41 +#: apps/node_man/models.py:629 apps/node_man/serializers/ap.py:43 msgid "是否默认接入点,不可删除" msgstr "Is it the default access point, it cannot be deleted" -#: apps/node_man/models.py:638 apps/node_man/serializers/ap.py:83 +#: apps/node_man/models.py:630 apps/node_man/serializers/ap.py:97 msgid "接入点创建者" msgstr "Access Point Creator" -#: apps/node_man/models.py:639 +#: apps/node_man/models.py:631 msgid "GSE端口配置" msgstr "GSE port configuration" -#: apps/node_man/models.py:640 apps/node_man/serializers/ap.py:42 +#: apps/node_man/models.py:632 apps/node_man/serializers/ap.py:44 msgid "Proxy上的安装包" msgstr "package on Proxy" -#: apps/node_man/models.py:641 apps/node_man/serializers/ap.py:87 +#: apps/node_man/models.py:633 apps/node_man/serializers/ap.py:101 msgid "节点管理外网回调地址" msgstr "Node management external network callback address" -#: apps/node_man/models.py:642 apps/node_man/serializers/ap.py:88 +#: apps/node_man/models.py:634 apps/node_man/serializers/ap.py:102 msgid "节点管理内网回调地址" msgstr "Node management intranet callback address" -#: apps/node_man/models.py:660 +#: apps/node_man/models.py:664 msgid "默认接入点不存在" msgstr "Default access point does not exist" -#: apps/node_man/models.py:692 +#: apps/node_man/models.py:699 #, python-brace-format msgid "回调地址请求失败,报错信息 -> {exc}" msgstr "Callback address request failed, error message -> {exc}" -#: apps/node_man/models.py:694 +#: apps/node_man/models.py:701 msgid "回调地址指向站点非节点管理后台" msgstr "" "The callback address points to the site's non-node management background" -#: apps/node_man/models.py:719 +#: apps/node_man/models.py:730 #, python-brace-format msgid "Ping {ip} 失败, {output}" msgstr "Ping {ip} failed, {output}" -#: apps/node_man/models.py:721 +#: apps/node_man/models.py:732 #, python-brace-format msgid "Ping {ip} 正常" msgstr "Ping {ip} OK" -#: apps/node_man/models.py:732 +#: apps/node_man/models.py:744 #, python-brace-format msgid "{download_url} 检测下载失败,目标地址没有 setup_agent.sh 文件" msgstr "" "{download_url} failed to detect download, the target address does not have a " "setup_agent.sh file" -#: apps/node_man/models.py:740 +#: apps/node_man/models.py:752 #, python-brace-format msgid "{download_url} 检测下载失败" msgstr "{download_url} failed to detect download" -#: apps/node_man/models.py:747 +#: apps/node_man/models.py:759 #, python-brace-format msgid "{download_url} 检测下载成功" msgstr "{download_url} detected successful download" -#: apps/node_man/models.py:754 +#: apps/node_man/models.py:767 #, python-brace-format msgid "回调地址 -> {url} 验证可达" msgstr "Callback address->{url} is verified to be reachable" -#: apps/node_man/models.py:759 +#: apps/node_man/models.py:772 #, python-brace-format msgid "回调地址 -> {url} 不正确:{err_msg}" msgstr "Callback address->{url} is incorrect: {err_msg}" -#: apps/node_man/models.py:786 apps/node_man/models.py:787 +#: apps/node_man/models.py:800 apps/node_man/models.py:801 msgid "接入点(AccessPoint)" msgstr "AccessPoint" -#: apps/node_man/models.py:795 apps/node_man/serializers/cloud.py:29 +#: apps/node_man/models.py:809 apps/node_man/serializers/cloud.py:29 msgid "云服务商" msgstr "Cloud provider" -#: apps/node_man/models.py:797 +#: apps/node_man/models.py:811 msgid "云区域创建者" msgstr "Cloud area creator" -#: apps/node_man/models.py:799 +#: apps/node_man/models.py:813 msgid "是否可见" msgstr "Is visible" -#: apps/node_man/models.py:800 apps/utils/orm.py:70 pipeline/models.py:284 +#: apps/node_man/models.py:814 apps/utils/orm.py:98 pipeline/models.py:284 msgid "是否删除" msgstr "Delete" -#: apps/node_man/models.py:811 apps/node_man/models.py:812 +#: apps/node_man/models.py:825 apps/node_man/models.py:826 msgid "云区域(Cloud)" msgstr "Cloud" -#: apps/node_man/models.py:826 +#: apps/node_man/models.py:840 msgid "名称" msgstr "Name" -#: apps/node_man/models.py:828 +#: apps/node_man/models.py:842 msgid "安装通道跳板机" msgstr "Install channel jumper" -#: apps/node_man/models.py:832 apps/node_man/models.py:833 +#: apps/node_man/models.py:888 apps/node_man/models.py:889 msgid "安装通道(InstallChannel)" msgstr "InstallChannel" -#: apps/node_man/models.py:839 apps/node_man/models.py:1034 -#: apps/node_man/models.py:1803 +#: apps/node_man/models.py:895 apps/node_man/models.py:1090 +#: apps/node_man/models.py:1880 msgid "操作人" msgstr "Operator" -#: apps/node_man/models.py:841 +#: apps/node_man/models.py:897 msgid "作业类型" msgstr "Job type" -#: apps/node_man/models.py:843 apps/node_man/models.py:1729 -#: apps/node_man/models.py:2108 apps/node_man/models.py:2145 -#: apps/node_man/models.py:2319 -msgid "订阅ID" -msgstr "Subscription ID" - -#: apps/node_man/models.py:844 +#: apps/node_man/models.py:900 msgid "任务ID列表" msgstr "Task id list" -#: apps/node_man/models.py:845 +#: apps/node_man/models.py:901 msgid "创建任务时间" msgstr "Task created time" -#: apps/node_man/models.py:846 +#: apps/node_man/models.py:902 msgid "任务结束时间" msgstr "Task end time" -#: apps/node_man/models.py:848 apps/node_man/models.py:1436 -#: apps/node_man/models.py:2157 apps/node_man/models.py:2305 +#: apps/node_man/models.py:904 apps/node_man/models.py:1499 +#: apps/node_man/models.py:2249 apps/node_man/models.py:2398 msgid "任务状态" msgstr "Task status" -#: apps/node_man/models.py:850 +#: apps/node_man/models.py:906 msgid "全局运行参数" msgstr "Global run parameters" -#: apps/node_man/models.py:851 +#: apps/node_man/models.py:907 msgid "任务统计信息" msgstr "Task statistics" -#: apps/node_man/models.py:852 apps/node_man/models.py:1808 +#: apps/node_man/models.py:908 apps/node_man/models.py:1885 msgid "业务范围" msgstr "Business Scope" -#: apps/node_man/models.py:853 +#: apps/node_man/models.py:909 msgid "发生错误的主机" msgstr "Bad host" -#: apps/node_man/models.py:854 apps/node_man/models.py:2114 +#: apps/node_man/models.py:910 apps/node_man/models.py:2199 msgid "是否为自动触发" msgstr "Is it auto-triggered" -#: apps/node_man/models.py:857 apps/node_man/models.py:858 +#: apps/node_man/models.py:913 apps/node_man/models.py:914 msgid "任务信息(Job)" msgstr "Job Information (Job)" -#: apps/node_man/models.py:865 +#: apps/node_man/models.py:921 msgid "作业ID" msgstr "Job ID" -#: apps/node_man/models.py:867 apps/node_man/models.py:2146 -#: apps/node_man/models.py:2320 apps/node_man/serializers/iam.py:23 +#: apps/node_man/models.py:923 apps/node_man/models.py:2238 +#: apps/node_man/models.py:2413 apps/node_man/serializers/iam.py:23 #: apps/node_man/serializers/plugin_v2.py:246 #: pipeline/contrib/statistics/models.py:36 #: pipeline/contrib/statistics/models.py:72 pipeline/models.py:611 msgid "实例ID" msgstr "Instance ID" -#: apps/node_man/models.py:868 +#: apps/node_man/models.py:924 msgid "Pipeline节点ID" msgstr "Pipeline node ID" -#: apps/node_man/models.py:870 +#: apps/node_man/models.py:926 msgid "当前步骤" msgstr "Current step" -#: apps/node_man/models.py:876 apps/node_man/models.py:877 +#: apps/node_man/models.py:932 apps/node_man/models.py:933 msgid "任务详情(JobTask)" msgstr "JobTask" -#: apps/node_man/models.py:886 apps/node_man/models.py:1553 -#: apps/node_man/models.py:1573 +#: apps/node_man/models.py:942 apps/node_man/models.py:1616 +#: apps/node_man/models.py:1636 msgid "插件名" msgstr "Plugin name" -#: apps/node_man/models.py:887 +#: apps/node_man/models.py:943 msgid "插件描述" msgstr "Plugin Description" -#: apps/node_man/models.py:888 +#: apps/node_man/models.py:944 msgid "使用场景" msgstr "Use scenario" -#: apps/node_man/models.py:889 +#: apps/node_man/models.py:945 msgid "英文插件描述" msgstr "English plugin description" -#: apps/node_man/models.py:890 +#: apps/node_man/models.py:946 msgid "英文使用场景" msgstr "English usage scenarios" -#: apps/node_man/models.py:891 +#: apps/node_man/models.py:947 msgid "所属范围" msgstr "Belongs to" -#: apps/node_man/models.py:893 +#: apps/node_man/models.py:949 msgid "宿主节点类型要求" msgstr "Host node type required" -#: apps/node_man/models.py:896 +#: apps/node_man/models.py:952 msgid "配置文件名称" msgstr "Config file name" -#: apps/node_man/models.py:898 +#: apps/node_man/models.py:954 msgid "配置文件格式类型" msgstr "Config file format type" -#: apps/node_man/models.py:906 +#: apps/node_man/models.py:962 msgid "是否使用数据库" msgstr "Whether to use database" -#: apps/node_man/models.py:907 +#: apps/node_man/models.py:963 msgid "是否在成功安装agent后自动拉起" msgstr "" "Whether to automatically pull up the agent after successful installation of " "the agent" -#: apps/node_man/models.py:908 +#: apps/node_man/models.py:964 msgid "是否二进制文件" msgstr "Is it binary" -#: apps/node_man/models.py:909 +#: apps/node_man/models.py:965 msgid "是否启用插件" msgstr "Whether plugins are enabled" -#: apps/node_man/models.py:912 +#: apps/node_man/models.py:968 msgid "部署方式" msgstr "Deployment method" -#: apps/node_man/models.py:914 +#: apps/node_man/models.py:970 msgid "来源系统APP CODE" msgstr "Source system APP CODE" -#: apps/node_man/models.py:916 +#: apps/node_man/models.py:972 msgid "节点管理管控插件信息" msgstr "Node management control plugin information" -#: apps/node_man/models.py:919 apps/node_man/models.py:920 +#: apps/node_man/models.py:975 apps/node_man/models.py:976 msgid "插件信息(GsePluginDesc)" msgstr "Plugin Info (GsePluginDesc)" -#: apps/node_man/models.py:1014 +#: apps/node_man/models.py:1070 msgid "压缩包名" msgstr "Compressed package name" -#: apps/node_man/models.py:1015 apps/node_man/models.py:1574 +#: apps/node_man/models.py:1071 apps/node_man/models.py:1637 msgid "版本号" msgstr "Version" -#: apps/node_man/models.py:1016 +#: apps/node_man/models.py:1072 msgid "所属服务" msgstr "Owning service" -#: apps/node_man/models.py:1017 apps/node_man/models.py:1213 +#: apps/node_man/models.py:1073 apps/node_man/models.py:1276 msgid "工程名" msgstr "Project name" -#: apps/node_man/models.py:1018 +#: apps/node_man/models.py:1074 msgid "包大小" msgstr "Packet size" -#: apps/node_man/models.py:1019 +#: apps/node_man/models.py:1075 msgid "包路径" msgstr "Package path" -#: apps/node_man/models.py:1020 +#: apps/node_man/models.py:1076 msgid "md5值" msgstr "md5 value" -#: apps/node_man/models.py:1021 +#: apps/node_man/models.py:1077 msgid "包更新时间" msgstr "Package update time" -#: apps/node_man/models.py:1022 +#: apps/node_man/models.py:1078 msgid "包创建时间" msgstr "Package creation time" -#: apps/node_man/models.py:1023 +#: apps/node_man/models.py:1079 msgid "安装包链接" msgstr "Installation package link" -#: apps/node_man/models.py:1025 apps/node_man/models.py:1231 +#: apps/node_man/models.py:1081 apps/node_man/models.py:1294 msgid "系统类型" msgstr "System type" -#: apps/node_man/models.py:1032 +#: apps/node_man/models.py:1088 msgid "CPU类型" msgstr "CPU type" -#: apps/node_man/models.py:1036 apps/node_man/models.py:1582 +#: apps/node_man/models.py:1092 apps/node_man/models.py:1645 msgid "是否已经发布版本" msgstr "Is a version released" -#: apps/node_man/models.py:1038 +#: apps/node_man/models.py:1094 msgid "插件是否可用" msgstr "Is plugin available" -#: apps/node_man/models.py:1040 version_log/config.py:31 +#: apps/node_man/models.py:1096 version_log/config.py:31 msgid "版本日志" msgstr "Version log" -#: apps/node_man/models.py:1041 +#: apps/node_man/models.py:1097 msgid "英文版本日志" msgstr "English version log" -#: apps/node_man/models.py:1086 +#: apps/node_man/models.py:1142 msgid "找不到可导出插件,请确认后重试" msgstr "No exportable plugin found, please confirm and try again" -#: apps/node_man/models.py:1162 +#: apps/node_man/models.py:1218 msgid "插件包不存在,请联系管理员处理" msgstr "" "The plugin package does not exist, please contact the administrator to deal " "with it" -#: apps/node_man/models.py:1200 apps/node_man/models.py:1201 +#: apps/node_man/models.py:1256 apps/node_man/models.py:1257 msgid "插件包(Packages)" msgstr "Packages" -#: apps/node_man/models.py:1212 apps/node_man/models.py:1321 +#: apps/node_man/models.py:1275 apps/node_man/models.py:1384 msgid "模块名" msgstr "Module name" -#: apps/node_man/models.py:1214 +#: apps/node_man/models.py:1277 msgid "记录对应的插件包ID" msgstr "Record the corresponding plugin package ID" -#: apps/node_man/models.py:1216 +#: apps/node_man/models.py:1279 msgid "安装路径" msgstr "Install path" -#: apps/node_man/models.py:1221 +#: apps/node_man/models.py:1284 msgid "启动命令" msgstr "Start command" -#: apps/node_man/models.py:1222 +#: apps/node_man/models.py:1285 msgid "停止命令" msgstr "Stop command" -#: apps/node_man/models.py:1223 +#: apps/node_man/models.py:1286 msgid "重启命令" msgstr "Restart command" -#: apps/node_man/models.py:1224 +#: apps/node_man/models.py:1287 msgid "重载命令" msgstr "Reload command" -#: apps/node_man/models.py:1225 +#: apps/node_man/models.py:1288 msgid "kill命令" msgstr "Kill command" -#: apps/node_man/models.py:1226 +#: apps/node_man/models.py:1289 msgid "进程版本查询命令" msgstr "Process version query command" -#: apps/node_man/models.py:1227 +#: apps/node_man/models.py:1290 msgid "进程健康检查命令" msgstr "Process health check command" -#: apps/node_man/models.py:1228 +#: apps/node_man/models.py:1291 msgid "调试进程命令" msgstr "Debug process command" -#: apps/node_man/models.py:1233 +#: apps/node_man/models.py:1296 msgid "实际二进制执行文件名" msgstr "Actual binary executable filename" -#: apps/node_man/models.py:1234 +#: apps/node_man/models.py:1297 msgid "插件允许使用的端口范围,格式 1,3,6-8,10-100" msgstr "The range of ports allowed by the plugin, in the format 1,3,6-8,10-100" -#: apps/node_man/models.py:1235 +#: apps/node_man/models.py:1298 msgid "是否需要托管" msgstr "Do you need hosting" -#: apps/node_man/models.py:1254 +#: apps/node_man/models.py:1317 #, python-format msgid "无法解析的端口号:%s" msgstr "Unresolved port number: %s" -#: apps/node_man/models.py:1259 +#: apps/node_man/models.py:1322 #, python-format msgid "不在合法范围内的端口号:%s" msgstr "Port number not in valid range: %s" -#: apps/node_man/models.py:1290 apps/node_man/models.py:1299 +#: apps/node_man/models.py:1353 apps/node_man/models.py:1362 #, python-format msgid "不合法的端口范围定义格式:%s" msgstr "Illegal port range definition format: %s" -#: apps/node_man/models.py:1303 +#: apps/node_man/models.py:1366 #, python-format msgid "端口范围字符串解析失败:%s" msgstr "Failed to parse port range string: %s" -#: apps/node_man/models.py:1308 apps/node_man/models.py:1309 +#: apps/node_man/models.py:1371 apps/node_man/models.py:1372 msgid "插件控制表(ProcControl)" msgstr "Plugin Control Table (ProcControl)" -#: apps/node_man/models.py:1320 +#: apps/node_man/models.py:1383 msgid "上传包文件名" msgstr "Upload package filename" -#: apps/node_man/models.py:1323 +#: apps/node_man/models.py:1386 msgid "文件上传的路径名" msgstr "File upload pathname" -#: apps/node_man/models.py:1324 +#: apps/node_man/models.py:1387 msgid "文件大小,单位Byte" msgstr "File size, in Bytes" -#: apps/node_man/models.py:1325 +#: apps/node_man/models.py:1388 msgid "文件MD5" msgstr "File MD5" -#: apps/node_man/models.py:1327 +#: apps/node_man/models.py:1390 msgid "文件上传时间" msgstr "File upload time" -#: apps/node_man/models.py:1328 +#: apps/node_man/models.py:1391 msgid "上传用户名" msgstr "Upload Username" -#: apps/node_man/models.py:1329 apps/node_man/models.py:1442 -#: apps/node_man/models.py:1586 apps/node_man/models.py:1663 +#: apps/node_man/models.py:1392 apps/node_man/models.py:1505 +#: apps/node_man/models.py:1649 apps/node_man/models.py:1733 msgid "来源系统app code" msgstr "Source system app code" -#: apps/node_man/models.py:1332 +#: apps/node_man/models.py:1395 msgid "文件包上传记录" msgstr "Package upload log" -#: apps/node_man/models.py:1333 +#: apps/node_man/models.py:1396 msgid "文件包上传记录表" msgstr "Package upload record table" -#: apps/node_man/models.py:1362 +#: apps/node_man/models.py:1425 #, python-brace-format msgid "文件{file_path}不存在,请确认后重试" msgstr "The file {file_path} does not exist, please confirm and try again" -#: apps/node_man/models.py:1395 +#: apps/node_man/models.py:1458 msgid "文件迁移失败,请联系管理员协助处理" msgstr "File migration failed, please contact administrator for assistance" -#: apps/node_man/models.py:1419 +#: apps/node_man/models.py:1482 msgid "任务准备中" msgstr "Task preparation" -#: apps/node_man/models.py:1420 +#: apps/node_man/models.py:1483 msgid "任务进行中" msgstr "Task in progress" -#: apps/node_man/models.py:1421 +#: apps/node_man/models.py:1484 msgid "任务已完成" msgstr "Task completed" -#: apps/node_man/models.py:1428 +#: apps/node_man/models.py:1491 msgid "gse插件" msgstr "Gse plugin" -#: apps/node_man/models.py:1432 +#: apps/node_man/models.py:1495 msgid "下载文件类型" msgstr "Download file type" -#: apps/node_man/models.py:1433 +#: apps/node_man/models.py:1496 msgid "下载查询参数" msgstr "Download query parameters" -#: apps/node_man/models.py:1435 +#: apps/node_man/models.py:1498 msgid "打包后的文件路径" msgstr "Packaged file path" -#: apps/node_man/models.py:1437 +#: apps/node_man/models.py:1500 msgid "任务错误信息" msgstr "Task error message" -#: apps/node_man/models.py:1439 +#: apps/node_man/models.py:1502 msgid "任务创建者" msgstr "Task creator" -#: apps/node_man/models.py:1440 +#: apps/node_man/models.py:1503 msgid "下载任务创建时间" msgstr "Download task creation time" -#: apps/node_man/models.py:1441 +#: apps/node_man/models.py:1504 msgid "任务完成时间" msgstr "Task completion time" -#: apps/node_man/models.py:1532 +#: apps/node_man/models.py:1595 #, python-brace-format msgid "任务失败: {err_msg}" msgstr "Task failed: {err_msg}" -#: apps/node_man/models.py:1548 apps/node_man/models.py:1549 +#: apps/node_man/models.py:1611 apps/node_man/models.py:1612 msgid "下载记录" msgstr "Download log" -#: apps/node_man/models.py:1554 apps/node_man/serializers/plugin_v2.py:252 +#: apps/node_man/models.py:1617 apps/node_man/serializers/plugin_v2.py:252 msgid "CPU限额" msgstr "CPU quota" -#: apps/node_man/models.py:1555 apps/node_man/serializers/plugin_v2.py:253 +#: apps/node_man/models.py:1618 apps/node_man/serializers/plugin_v2.py:253 msgid "内存限额" msgstr "Memory quota" -#: apps/node_man/models.py:1558 +#: apps/node_man/models.py:1621 msgid "CMDB实例ID" msgstr "CMDB instance ID" -#: apps/node_man/models.py:1563 apps/node_man/models.py:1564 +#: apps/node_man/models.py:1626 apps/node_man/models.py:1627 msgid "插件资源设置" msgstr "Plugin Resource Settings" -#: apps/node_man/models.py:1575 +#: apps/node_man/models.py:1638 msgid "配置模板名" msgstr "Config template name" -#: apps/node_man/models.py:1576 +#: apps/node_man/models.py:1639 msgid "配置模板版本" msgstr "Config Template Version" -#: apps/node_man/models.py:1577 +#: apps/node_man/models.py:1640 msgid "是否主配置" msgstr "Is the main configuration" -#: apps/node_man/models.py:1579 +#: apps/node_man/models.py:1642 msgid "文件格式" msgstr "File format" -#: apps/node_man/models.py:1580 +#: apps/node_man/models.py:1643 msgid "文件在该插件目录中相对路径" msgstr "Relative path to file in this plugin directory" -#: apps/node_man/models.py:1581 +#: apps/node_man/models.py:1644 msgid "配置内容" msgstr "Config content" -#: apps/node_man/models.py:1584 apps/node_man/models.py:1661 -#: pipeline/contrib/periodic_task/models.py:296 pipeline/models.py:276 -#: pipeline/models.py:616 +#: apps/node_man/models.py:1647 apps/node_man/models.py:1731 +#: apps/utils/orm.py:175 pipeline/contrib/periodic_task/models.py:296 +#: pipeline/models.py:276 pipeline/models.py:616 msgid "创建者" msgstr "Created by" -#: apps/node_man/models.py:1592 -msgid "CPU架构" -msgstr "CPU Architecture" - -#: apps/node_man/models.py:1596 +#: apps/node_man/models.py:1659 msgid "插件配置文件模板" msgstr "Plugin configuration file template" -#: apps/node_man/models.py:1597 +#: apps/node_man/models.py:1660 msgid "插件配置文件模板表" msgstr "Plugin configuration file template table" -#: apps/node_man/models.py:1658 +#: apps/node_man/models.py:1728 msgid "对应实例记录ID" msgstr "Corresponding instance record ID" -#: apps/node_man/models.py:1659 +#: apps/node_man/models.py:1729 msgid "渲染参数" msgstr "Render parameters" -#: apps/node_man/models.py:1660 +#: apps/node_man/models.py:1730 msgid "渲染参数MD5" msgstr "Render parameter MD5" -#: apps/node_man/models.py:1722 +#: apps/node_man/models.py:1792 msgid "插件配置文件实例" msgstr "Plugin config file instance" -#: apps/node_man/models.py:1723 +#: apps/node_man/models.py:1793 msgid "插件配置文件实例表" msgstr "Plugin configuration file instance table" -#: apps/node_man/models.py:1730 +#: apps/node_man/models.py:1800 msgid "顺序" msgstr "Order" -#: apps/node_man/models.py:1731 +#: apps/node_man/models.py:1801 msgid "步骤ID" msgstr "Step ID" -#: apps/node_man/models.py:1732 +#: apps/node_man/models.py:1802 msgid "步骤类型" msgstr "Step type" -#: apps/node_man/models.py:1733 +#: apps/node_man/models.py:1803 msgid "配置" msgstr "Config" -#: apps/node_man/models.py:1734 +#: apps/node_man/models.py:1804 msgid "参数" msgstr "Parameter" -#: apps/node_man/models.py:1750 apps/node_man/models.py:1751 +#: apps/node_man/models.py:1820 apps/node_man/models.py:1821 msgid "订阅步骤" msgstr "Subscribe step" -#: apps/node_man/models.py:1765 +#: apps/node_man/models.py:1842 msgid "服务" msgstr "Service" -#: apps/node_man/models.py:1775 +#: apps/node_man/models.py:1852 msgid "动态实例(拓扑)" msgstr "Dynamic instance (topology)" -#: apps/node_man/models.py:1776 +#: apps/node_man/models.py:1853 msgid "静态实例" msgstr "Static instance" -#: apps/node_man/models.py:1777 +#: apps/node_man/models.py:1854 msgid "服务模板" msgstr "Service template" -#: apps/node_man/models.py:1778 +#: apps/node_man/models.py:1855 msgid "集群模板" msgstr "Cluster template" -#: apps/node_man/models.py:1789 +#: apps/node_man/models.py:1866 msgid "一次性订阅" msgstr "Once subscription" -#: apps/node_man/models.py:1794 +#: apps/node_man/models.py:1871 msgid "任务名称" msgstr "Task name" -#: apps/node_man/models.py:1796 apps/node_man/models.py:2323 +#: apps/node_man/models.py:1873 apps/node_man/models.py:2416 msgid "对象类型" msgstr "Object type" -#: apps/node_man/models.py:1798 +#: apps/node_man/models.py:1875 msgid "节点" msgstr "Node" -#: apps/node_man/models.py:1799 +#: apps/node_man/models.py:1876 msgid "下发的目标机器" msgstr "Destination machine issued" -#: apps/node_man/models.py:1800 +#: apps/node_man/models.py:1877 msgid "所属系统" msgstr "Owning system" -#: apps/node_man/models.py:1806 apps/node_man/serializers/policy.py:121 +#: apps/node_man/models.py:1883 apps/node_man/serializers/policy.py:147 msgid "订阅类别" msgstr "Subscription Category" -#: apps/node_man/models.py:1807 apps/node_man/serializers/plugin.py:211 +#: apps/node_man/models.py:1884 apps/node_man/serializers/plugin.py:211 #: apps/node_man/serializers/plugin_v2.py:175 #: apps/node_man/serializers/plugin_v2.py:200 #: apps/node_man/serializers/plugin_v2.py:251 -#: apps/node_man/serializers/policy.py:37 -#: apps/node_man/serializers/policy.py:127 +#: apps/node_man/serializers/policy.py:63 +#: apps/node_man/serializers/policy.py:153 msgid "插件名称" msgstr "Plugin name" -#: apps/node_man/models.py:1810 +#: apps/node_man/models.py:1887 msgid "父订阅ID" msgstr "Parent subscription id" -#: apps/node_man/models.py:2101 apps/node_man/models.py:2102 +#: apps/node_man/models.py:2179 apps/node_man/models.py:2180 msgid "订阅(Subscription)" msgstr "Subscription" -#: apps/node_man/models.py:2109 +#: apps/node_man/models.py:2194 msgid "执行范围" msgstr "Execution scope" -#: apps/node_man/models.py:2110 +#: apps/node_man/models.py:2195 msgid "不同step执行的动作名称。键值对" msgstr "Name of the action performed by different steps. Key-value pair" -#: apps/node_man/models.py:2112 +#: apps/node_man/models.py:2197 msgid "错误信息" msgstr "Error message" -#: apps/node_man/models.py:2113 +#: apps/node_man/models.py:2198 msgid "是否准备就绪" msgstr "Ready" -#: apps/node_man/models.py:2115 apps/node_man/models.py:2149 +#: apps/node_man/models.py:2200 apps/node_man/models.py:2241 msgid "Pipeline ID" msgstr "Pipeline ID" -#: apps/node_man/models.py:2135 apps/node_man/models.py:2136 +#: apps/node_man/models.py:2220 apps/node_man/models.py:2221 msgid "订阅任务" msgstr "Subscribe tasks" -#: apps/node_man/models.py:2147 apps/node_man/models.py:2324 +#: apps/node_man/models.py:2239 apps/node_man/models.py:2417 msgid "实例信息" msgstr "Instance info" -#: apps/node_man/models.py:2148 +#: apps/node_man/models.py:2240 msgid "步骤信息" msgstr "Step info" -#: apps/node_man/models.py:2150 +#: apps/node_man/models.py:2242 msgid "Start Pipeline ID" msgstr "Start Pipeline ID" -#: apps/node_man/models.py:2153 +#: apps/node_man/models.py:2245 msgid "是否需要清洗临时信息" msgstr "Do you need to clean temporary information" -#: apps/node_man/models.py:2154 +#: apps/node_man/models.py:2246 msgid "是否为实例最新记录" msgstr "Is the latest record for the instance" -#: apps/node_man/models.py:2217 apps/node_man/models.py:2241 +#: apps/node_man/models.py:2309 apps/node_man/models.py:2333 msgid "步骤ID [{}] 在该订阅配置中不存在" msgstr "Step id [{}] does not exist in this subscription configuration" -#: apps/node_man/models.py:2269 apps/node_man/models.py:2270 +#: apps/node_man/models.py:2362 apps/node_man/models.py:2363 msgid "订阅实例记录" msgstr "Subscribe instance records" -#: apps/node_man/models.py:2274 +#: apps/node_man/models.py:2367 msgid "作业实例ID" msgstr "Job instance id" -#: apps/node_man/models.py:2275 +#: apps/node_man/models.py:2368 msgid "订阅实例ID列表" msgstr "Subscription instance ID list" -#: apps/node_man/models.py:2276 pipeline/contrib/statistics/models.py:21 +#: apps/node_man/models.py:2369 pipeline/contrib/statistics/models.py:21 #: pipeline/contrib/statistics/models.py:37 msgid "节点ID" msgstr "Node ID" -#: apps/node_man/models.py:2277 +#: apps/node_man/models.py:2370 msgid "作业状态" msgstr "Job status" -#: apps/node_man/models.py:2280 apps/node_man/models.py:2281 +#: apps/node_man/models.py:2373 apps/node_man/models.py:2374 msgid "作业平台ID映射表" msgstr "Job platform ID mapping table" -#: apps/node_man/models.py:2285 apps/node_man/models.py:2302 +#: apps/node_man/models.py:2378 apps/node_man/models.py:2395 msgid "订阅实例ID" msgstr "Subscription instance ID" -#: apps/node_man/models.py:2286 apps/node_man/models.py:2307 +#: apps/node_man/models.py:2379 apps/node_man/models.py:2400 #: pipeline/log/models.py:45 msgid "日志内容" msgstr "Log content" -#: apps/node_man/models.py:2287 pipeline/log/models.py:44 +#: apps/node_man/models.py:2380 pipeline/log/models.py:44 msgid "日志等级" msgstr "Log level" -#: apps/node_man/models.py:2291 apps/node_man/models.py:2292 +#: apps/node_man/models.py:2384 apps/node_man/models.py:2385 msgid "订阅实例日志" msgstr "Subscription instance log" -#: apps/node_man/models.py:2303 +#: apps/node_man/models.py:2396 msgid "Pipeline原子ID" msgstr "Pipeline Atom ID" -#: apps/node_man/models.py:2312 apps/node_man/models.py:2313 +#: apps/node_man/models.py:2405 apps/node_man/models.py:2406 msgid "订阅实例状态表" msgstr "Subscription instance status table" -#: apps/node_man/models.py:2321 apps/node_man/models.py:2365 +#: apps/node_man/models.py:2414 apps/node_man/models.py:2458 msgid "事件类型" msgstr "Event type" -#: apps/node_man/models.py:2322 +#: apps/node_man/models.py:2415 msgid "动作" msgstr "Action" -#: apps/node_man/models.py:2328 apps/node_man/models.py:2329 +#: apps/node_man/models.py:2421 apps/node_man/models.py:2422 msgid "CMDB事件记录" msgstr "CMDB event log" -#: apps/node_man/models.py:2337 +#: apps/node_man/models.py:2430 msgid "PipelineID" msgstr "PipelineID" -#: apps/node_man/models.py:2338 +#: apps/node_man/models.py:2431 msgid "Pipeline拓扑树" msgstr "Pipeline topology tree" -#: apps/node_man/models.py:2364 +#: apps/node_man/models.py:2457 msgid "游标" msgstr "Cursor" -#: apps/node_man/models.py:2366 +#: apps/node_man/models.py:2459 msgid "资源" msgstr "Resource" -#: apps/node_man/models.py:2367 +#: apps/node_man/models.py:2460 msgid "事件详情" msgstr "Event Details" -#: apps/node_man/models.py:2371 apps/node_man/models.py:2372 +#: apps/node_man/models.py:2464 apps/node_man/models.py:2465 msgid "CMDB资源监听事件" msgstr "CMDB resource listener event" -#: apps/node_man/serializers/ap.py:72 +msgid "请求参数 inner_ip 和 inner_ipv6 不能同时为空" +msgstr "Request parameters inner_ip and inner_ipv6 cannot be empty at the same time" + +#: apps/node_man/serializers/ap.py:82 +#, fuzzy +msgid "请求参数 outer_ip 和 outer_ipv6 不能同时为空" +msgstr "Request parameters outer_ip and outer_ipv6 cannot be empty at the same time" + +#: apps/node_man/serializers/ap.py:86 msgid "ZK IP地址" msgstr "ZK IP address" -#: apps/node_man/serializers/ap.py:73 +#: apps/node_man/serializers/ap.py:87 msgid "ZK 端口" msgstr "ZK port" -#: apps/node_man/serializers/ap.py:80 +#: apps/node_man/serializers/ap.py:94 msgid "ZK密码" msgstr "ZK password" -#: apps/node_man/serializers/ap.py:81 +#: apps/node_man/serializers/ap.py:95 msgid "Agent配置" msgstr "Agent Configuration" -#: apps/node_man/serializers/ap.py:86 +#: apps/node_man/serializers/ap.py:100 msgid "BSCP配置" msgstr "BSCP configuration" @@ -4123,7 +4969,11 @@ msgstr "configs item must be contains (os, cpu_arch, version)" msgid "相同os & cpu_arch 组合至多选择一个包" msgstr "Select at most one package for the same os & cpu_arch combination" -#: apps/node_man/serializers/base.py:61 apps/node_man/serializers/base.py:78 +#: apps/node_man/serializers/base.py:66 +msgid "节点缺少 bk_biz_id 属性" +msgstr "Node is missing bk_biz_id attribute" + +#: apps/node_man/serializers/base.py:71 msgid "" "部署节点属性组合必须是 (bk_biz_id, bk_host_id) 或者 (bk_biz_id, bk_obj_id, " "bk_inst_id)" @@ -4131,16 +4981,12 @@ msgstr "" "Deployment node attribute combination must be (bk_biz_id, bk_host_id) or " "(bk_biz_id, bk_obj_id, bk_inst_id)" -#: apps/node_man/serializers/base.py:73 -msgid "节点缺少 bk_biz_id 属性" -msgstr "Node is missing bk_biz_id attribute" - -#: apps/node_man/serializers/base.py:83 +#: apps/node_man/serializers/base.py:76 #, python-brace-format msgid "部署节点[{node}]不是主机实例" msgstr "Deployment node [{node}] is not a host instance" -#: apps/node_man/serializers/base.py:87 +#: apps/node_man/serializers/base.py:80 #, python-brace-format msgid "部署节点[{node}不是拓扑节点]" msgstr "Deployment node [{node} is not a topology node]" @@ -4149,10 +4995,6 @@ msgstr "Deployment node [{node} is not a topology node]" msgid "是否返回直连区域" msgstr "Whether to return the direct area" -#: apps/node_man/serializers/cloud.py:28 -msgid "云区域名称" -msgstr "Cloud area name" - #: apps/node_man/serializers/cmdb.py:23 msgid "操作" msgstr "Action" @@ -4161,26 +5003,26 @@ msgstr "Action" msgid "搜索关键字" msgstr "Search keyword" -#: apps/node_man/serializers/cmdb.py:50 apps/node_man/serializers/job.py:156 -#: apps/node_man/serializers/policy.py:35 +#: apps/node_man/serializers/cmdb.py:50 apps/node_man/serializers/job.py:241 +#: apps/node_man/serializers/policy.py:61 msgid "业务ID列表" msgstr "List of business IDs" -#: apps/node_man/serializers/cmdb.py:53 apps/node_man/serializers/host.py:26 -#: apps/node_man/serializers/host_v2.py:32 apps/node_man/serializers/job.py:31 -#: apps/node_man/serializers/job.py:208 apps/node_man/serializers/plugin.py:201 +#: apps/node_man/serializers/cmdb.py:53 apps/node_man/serializers/host.py:27 +#: apps/node_man/serializers/host_v2.py:32 apps/node_man/serializers/job.py:67 +#: apps/node_man/serializers/job.py:295 apps/node_man/serializers/plugin.py:201 #: apps/node_man/serializers/plugin_v2.py:178 -#: apps/node_man/serializers/policy.py:91 -#: apps/node_man/serializers/policy.py:115 +#: apps/node_man/serializers/policy.py:117 +#: apps/node_man/serializers/policy.py:141 msgid "当前页数" msgstr "Current page number" -#: apps/node_man/serializers/cmdb.py:54 apps/node_man/serializers/host.py:27 -#: apps/node_man/serializers/host_v2.py:33 apps/node_man/serializers/job.py:32 -#: apps/node_man/serializers/job.py:209 apps/node_man/serializers/plugin.py:202 +#: apps/node_man/serializers/cmdb.py:54 apps/node_man/serializers/host.py:28 +#: apps/node_man/serializers/host_v2.py:33 apps/node_man/serializers/job.py:68 +#: apps/node_man/serializers/job.py:296 apps/node_man/serializers/plugin.py:202 #: apps/node_man/serializers/plugin_v2.py:179 -#: apps/node_man/serializers/policy.py:92 -#: apps/node_man/serializers/policy.py:116 +#: apps/node_man/serializers/policy.py:118 +#: apps/node_man/serializers/policy.py:142 msgid "分页大小" msgstr "Pagination Size" @@ -4188,72 +5030,61 @@ msgstr "Pagination Size" msgid "订阅任务ID" msgstr "Subscription task ID" -#: apps/node_man/serializers/host.py:23 apps/node_man/serializers/host.py:75 -#: apps/node_man/serializers/host_v2.py:34 apps/node_man/serializers/job.py:150 +#: apps/node_man/serializers/host.py:24 apps/node_man/serializers/host.py:80 +#: apps/node_man/serializers/host_v2.py:34 apps/node_man/serializers/job.py:234 #: apps/node_man/serializers/plugin.py:200 -#: apps/node_man/serializers/plugin.py:237 +#: apps/node_man/serializers/plugin.py:241 #: apps/node_man/serializers/plugin_v2.py:180 msgid "跨页全选排除主机" msgstr "Select all exclude hosts across pages" -#: apps/node_man/serializers/host.py:24 apps/node_man/serializers/host.py:74 -#: apps/node_man/serializers/host_v2.py:29 apps/node_man/serializers/job.py:148 -#: apps/node_man/serializers/job.py:207 apps/node_man/serializers/plugin.py:198 -#: apps/node_man/serializers/plugin.py:235 -#: apps/node_man/serializers/plugin_v2.py:176 -#: apps/node_man/serializers/policy.py:90 -#: apps/node_man/serializers/policy.py:114 -msgid "搜索条件" -msgstr "Search Criteria" - -#: apps/node_man/serializers/host.py:25 +#: apps/node_man/serializers/host.py:26 #: pipeline/contrib/periodic_task/models.py:299 msgid "额外信息" msgstr "Extra info" -#: apps/node_man/serializers/host.py:28 apps/node_man/serializers/plugin.py:203 +#: apps/node_man/serializers/host.py:29 apps/node_man/serializers/plugin.py:203 msgid "只返回IP" msgstr "Only return IP" -#: apps/node_man/serializers/host.py:29 +#: apps/node_man/serializers/host.py:30 msgid "正在运行机器数" msgstr "Number of running machines" -#: apps/node_man/serializers/host.py:47 +#: apps/node_man/serializers/host.py:51 msgid "账号" msgstr "Account" -#: apps/node_man/serializers/host.py:48 +#: apps/node_man/serializers/host.py:52 msgid "端口号" msgstr "Port" -#: apps/node_man/serializers/host.py:52 +#: apps/node_man/serializers/host.py:56 msgid "秘钥" msgstr "Secret key" -#: apps/node_man/serializers/host.py:53 apps/node_man/serializers/job.py:63 +#: apps/node_man/serializers/host.py:57 apps/node_man/serializers/job.py:108 msgid "加速设置" msgstr "Acceleration Settings" -#: apps/node_man/serializers/host.py:54 +#: apps/node_man/serializers/host.py:58 msgid "加速" msgstr "Speed up" -#: apps/node_man/serializers/host.py:71 +#: apps/node_man/serializers/host.py:76 msgid "是否针对代理" msgstr "For proxy" -#: apps/node_man/serializers/host.py:80 apps/node_man/serializers/job.py:169 -#: apps/node_man/serializers/plugin.py:257 +#: apps/node_man/serializers/host.py:85 apps/node_man/serializers/plugin.py:261 msgid "跨页全选模式下不允许传bk_host_id参数." msgstr "The bk_host_id parameter is not allowed in select-all across pages." -#: apps/node_man/serializers/host.py:83 +#: apps/node_man/serializers/host.py:88 msgid "不允许对代理执行跨页全选模式." msgstr "Spread select all mode is not allowed for proxy." -#: apps/node_man/serializers/host.py:86 apps/node_man/serializers/job.py:171 -#: apps/node_man/serializers/plugin.py:259 +#: apps/node_man/serializers/host.py:91 apps/node_man/serializers/job.py:256 +#: apps/node_man/serializers/plugin.py:263 msgid "必须选择一种模式(【是否跨页全选】)" msgstr "A mode must be selected ([whether to select all across pages])" @@ -4289,133 +5120,163 @@ msgstr "Instance name" msgid "申请权限信息" msgstr "Request permission information" -#: apps/node_man/serializers/install_channel.py:28 +#: apps/node_man/serializers/install_channel.py:30 msgid "安装通道名称" msgstr "Installation channel name" -#: apps/node_man/serializers/install_channel.py:29 +#: apps/node_man/serializers/install_channel.py:31 msgid "跳板机节点" msgstr "Springboard node" -#: apps/node_man/serializers/job.py:22 apps/node_man/serializers/policy.py:22 +#: apps/node_man/serializers/job.py:58 apps/node_man/serializers/policy.py:24 msgid "排序字段" msgstr "Sort field" -#: apps/node_man/serializers/job.py:23 apps/node_man/serializers/policy.py:23 +#: apps/node_man/serializers/job.py:59 apps/node_man/serializers/policy.py:25 msgid "排序类型" msgstr "Sort type" -#: apps/node_man/serializers/job.py:33 apps/node_man/serializers/policy.py:30 +#: apps/node_man/serializers/job.py:69 msgid "排序" msgstr "Sort" -#: apps/node_man/serializers/job.py:34 +#: apps/node_man/serializers/job.py:70 msgid "隐藏自动部署任务" msgstr "Hide automatic deployment tasks" -#: apps/node_man/serializers/job.py:36 +#: apps/node_man/serializers/job.py:72 msgid "任务类型列表" msgstr "Task type list" -#: apps/node_man/serializers/job.py:37 +#: apps/node_man/serializers/job.py:73 msgid "操作类型列表" msgstr "Operation type list" -#: apps/node_man/serializers/job.py:38 +#: apps/node_man/serializers/job.py:74 msgid "策略名称列表" msgstr "List of policy names" -#: apps/node_man/serializers/job.py:41 +#: apps/node_man/serializers/job.py:77 msgid "起始时间" msgstr "Start time" -#: apps/node_man/serializers/job.py:42 +#: apps/node_man/serializers/job.py:78 msgid "终止时间" msgstr "Termination time" -#: apps/node_man/serializers/job.py:50 +#: apps/node_man/serializers/job.py:92 msgid "安装通道ID" msgstr "Installation channel ID" -#: apps/node_man/serializers/job.py:57 +#: apps/node_man/serializers/job.py:102 msgid "账户" msgstr "Account" -#: apps/node_man/serializers/job.py:61 +#: apps/node_man/serializers/job.py:106 msgid "是否手动模式" msgstr "Whether manual mode" -#: apps/node_man/serializers/job.py:62 +#: apps/node_man/serializers/job.py:107 msgid "密码保留天数" msgstr "Password retention days" -#: apps/node_man/serializers/job.py:64 +#: apps/node_man/serializers/job.py:109 msgid "传输限速" msgstr "Transfer rate limit" -#: apps/node_man/serializers/job.py:81 -#, python-brace-format -msgid "{op_type} 操作必须填写bk_host_id." -msgstr "{op_type} operation must fill in bk_host_id." +#: apps/node_man/serializers/job.py:121 +msgid "Proxy 操作的请求参数 outer_ip 和 outer_ipv6 不能同时为空" +msgstr "The request parameters outer_ip and outer_ipv6 of the Proxy operation cannot be empty at the same time" -#: apps/node_man/serializers/job.py:87 -#, python-brace-format -msgid "{op_type} 操作必须填写认证类型." +#: apps/node_man/serializers/job.py:134 +#, fuzzy, python-brace-format +msgid "{op_type} 操作必须传入 bk_host_id 参数" +msgstr "{op_type} operation must fill in bk_host_id parameter" + +#: apps/node_man/serializers/job.py:140 +#, fuzzy, python-brace-format +msgid "{op_type} 操作必须填写认证类型" msgstr "{op_type} operation requires authentication type." -#: apps/node_man/serializers/job.py:92 +#: apps/node_man/serializers/job.py:145 msgid "密码认证方式必须填写密码" msgstr "Password authentication method must fill in password" -#: apps/node_man/serializers/job.py:94 +#: apps/node_man/serializers/job.py:147 msgid "密钥认证方式必须上传密钥" msgstr "Key authentication method must upload key" -#: apps/node_man/serializers/job.py:96 +#: apps/node_man/serializers/job.py:149 msgid "必须上传账号和端口" msgstr "Must upload account and port" -#: apps/node_man/serializers/job.py:100 -msgid "直连区域必须填写Ap_id." +#: apps/node_man/serializers/job.py:153 +#, fuzzy +msgid "直连区域必须填写Ap_id" msgstr "Ap_id must be filled in the direct connection area." -#: apps/node_man/serializers/job.py:113 +#: apps/node_man/serializers/job.py:171 +msgid "脚本名称" +msgstr "Script name" + +msgid "Agent 设置信息" +msgstr "Agent configuration information" + +#: apps/node_man/serializers/job.py:177 msgid "主机信息" msgstr "Host info" -#: apps/node_man/serializers/job.py:114 +#: apps/node_man/serializers/job.py:178 msgid "被替换的Proxy主机ID" msgstr "Replaced proxy host ID" -#: apps/node_man/serializers/job.py:119 -msgid "OA Ticket" -msgstr "OA Ticket" +#: apps/node_man/serializers/job.py:179 apps/node_man/serializers/job.py:235 +msgid "是否安装最新版本插件" +msgstr "Whether to install the latest version plugin" + +#: apps/node_man/serializers/job.py:180 +msgid "脚本钩子列表" +msgstr "Script Hook List" -#: apps/node_man/serializers/job.py:129 -msgid "替换PROXY必须填写replace_host_id." -msgstr "replace PROXY must fill in replace_host_id." +#: apps/node_man/serializers/job.py:194 +#, fuzzy +msgid "替换PROXY必须填写replace_host_id" +msgstr "replace PROXY must fill in replace_host_id" + +#: apps/node_man/serializers/job.py:213 +msgid "主机信息缺少主机ID(bk_host_id)" +msgstr "Host information is missing the Host ID (bk_host_id) " -#: apps/node_man/serializers/job.py:153 apps/node_man/serializers/plugin.py:240 +#: apps/node_man/serializers/job.py:215 +msgid "主机信息缺少业务ID(bk_biz_id)" +msgstr "Host information is missing the business ID (bk_biz_id)" + +#: apps/node_man/serializers/job.py:238 apps/node_man/serializers/plugin.py:244 msgid "操作类型," msgstr "Operation type," -#: apps/node_man/serializers/job.py:155 +#: apps/node_man/serializers/job.py:240 msgid "主机ID列表" msgstr "List of host IDs" -#: apps/node_man/serializers/job.py:164 -msgid "该接口不可用于安装." +#: apps/node_man/serializers/job.py:249 +#, fuzzy +msgid "该接口不可用于安装" msgstr "The interface is not available for installation." -#: apps/node_man/serializers/job.py:166 -msgid "该接口不可用于替换代理." +#: apps/node_man/serializers/job.py:251 +#, fuzzy +msgid "该接口不可用于替换代理" msgstr "This interface is not available for proxy replacement." -#: apps/node_man/serializers/job.py:218 +msgid "跨页全选模式下不允许传bk_host_id参数" +msgstr "The bk_host_id parameter is not allowed in select-all across pages" + +#: apps/node_man/serializers/job.py:305 msgid "任务实例ID列表" msgstr "Task instance id list" -#: apps/node_man/serializers/job.py:222 +#: apps/node_man/serializers/job.py:309 msgid "任务实例ID" msgstr "Task instance id" @@ -4469,25 +5330,25 @@ msgstr "Keep old configuration" msgid "不重启进程" msgstr "Do not restart process" -#: apps/node_man/serializers/plugin.py:232 +#: apps/node_man/serializers/plugin.py:236 msgid "插件信息" msgstr "Plugin info" -#: apps/node_man/serializers/plugin.py:234 +#: apps/node_man/serializers/plugin.py:238 msgid "插件信息列表" msgstr "Plugin info list" -#: apps/node_man/serializers/plugin.py:250 +#: apps/node_man/serializers/plugin.py:254 msgid "插件参数 plugin_params 和 plugin_params_list 参数不能同时为空" msgstr "" "Plugin parameters plugin_params and plugin_params_list parameters cannot " "both be empty" -#: apps/node_man/serializers/plugin.py:262 +#: apps/node_man/serializers/plugin.py:266 msgid "插件管理只允许对插件进行操作." msgstr "Plugin management only allows operations on plugins." -#: apps/node_man/serializers/plugin.py:266 +#: apps/node_man/serializers/plugin.py:270 msgid "不允许选择重复的插件进行操作" msgstr "Selecting duplicate plugins for operation is not allowed" @@ -4531,96 +5392,122 @@ msgstr "" msgid "对象ID" msgstr "Object ID" -#: apps/node_man/serializers/policy.py:38 +#: apps/node_man/serializers/policy.py:28 +msgid "仅搜索父策略" +msgstr "Only searching for root policy" + +#: apps/node_man/serializers/policy.py:32 +msgid "排序方式" +msgstr "Sort by" + +#: apps/node_man/serializers/policy.py:46 +#, python-brace-format +msgid "不支持的排序字段 -> {order_by_field}, 全部可排序字段 -> {policy_head_tuple}" +msgstr "No supporting sorting fields -> {order_by_field}, all sorted fields -> {policy_head_tuple}" + +#: apps/node_man/serializers/policy.py:64 msgid "模糊搜索关键字,支持策略名称、插件名称的模糊搜索" msgstr "" "Fuzzy search keyword, support fuzzy search of policy name and plugin name" -#: apps/node_man/serializers/policy.py:39 +#: apps/node_man/serializers/policy.py:65 msgid "是否采取懒加载策略(仅返回一级节点)" msgstr "Whether to adopt lazy loading strategy (only return first-level nodes)" -#: apps/node_man/serializers/policy.py:49 +#: apps/node_man/serializers/policy.py:75 msgid "所属父策略" msgstr "Owning parent policy" -#: apps/node_man/serializers/policy.py:61 +#: apps/node_man/serializers/policy.py:87 msgid "灰度策略与父策略所部署插件不一致" msgstr "" "The grayscale policy is inconsistent with the plugin deployed by the parent " "policy" -#: apps/node_man/serializers/policy.py:64 +#: apps/node_man/serializers/policy.py:90 msgid "灰度策略不能作为父策略" msgstr "Grayscale policy cannot be used as parent policy" -#: apps/node_man/serializers/policy.py:67 +#: apps/node_man/serializers/policy.py:93 msgid "灰度策略仅支持静态IP目标" msgstr "Grayscale policy only supports static IP targets" -#: apps/node_man/serializers/policy.py:73 +#: apps/node_man/serializers/policy.py:99 msgid "灰度策略目标不在父策略范围内" msgstr "Grayscale policy target is not within the scope of parent policy" -#: apps/node_man/serializers/policy.py:93 -#: apps/node_man/serializers/policy.py:110 -#: apps/node_man/serializers/policy.py:141 -#: apps/node_man/serializers/policy.py:157 +#: apps/node_man/serializers/policy.py:119 +#: apps/node_man/serializers/policy.py:136 +#: apps/node_man/serializers/policy.py:167 +#: apps/node_man/serializers/policy.py:183 msgid "策略ID" msgstr "Policy ID" -#: apps/node_man/serializers/policy.py:106 +#: apps/node_man/serializers/policy.py:132 msgid "policy_id, scope 必须其中一个存在" msgstr "policy_id, scope must exist" -#: apps/node_man/serializers/policy.py:143 +#: apps/node_man/serializers/policy.py:169 msgid "仅停用策略" msgstr "Deactivate policy only" -#: apps/node_man/serializers/policy.py:144 +#: apps/node_man/serializers/policy.py:170 msgid "父策略ID" msgstr "Parent Policy ID" -#: apps/node_man/serializers/policy.py:157 +#: apps/node_man/serializers/policy.py:183 msgid "策略ID列表" msgstr "List of policy IDs" -#: apps/node_man/tools/host.py:55 +#: apps/node_man/serializers/response.py:24 +#: apps/node_man/serializers/response.py:33 +#, fuzzy +msgid "作业任务ID" +msgstr "Job task ID" + +msgid "失败的主机信息" +msgstr "Failed host information" + +#: apps/node_man/serializers/response.py:34 +msgid "作业任务历史跳转URL" +msgstr "Job task history jump URL" + +#: apps/node_man/tools/host.py:56 #, python-brace-format msgid "密文无法解密,请检查是否按规则使用密钥加密:{err_msg}" msgstr "" "The ciphertext cannot be decrypted, please check whether the key is " "encrypted according to the rules: {err_msg}" -#: apps/node_man/tools/host.py:57 +#: apps/node_man/tools/host.py:58 msgid "密文解密失败:{err_msg" msgstr "Ciphertext decryption failed: {err_msg" -#: apps/node_man/tools/job.py:35 +#: apps/node_man/tools/job.py:37 msgid "节点异常" msgstr "Node exception" -#: apps/node_man/tools/job.py:41 +#: apps/node_man/tools/job.py:43 #, python-brace-format msgid "正在 {node_name}" msgstr "On {node_name}" -#: apps/node_man/tools/job.py:47 +#: apps/node_man/tools/job.py:49 #, python-brace-format msgid "{node_name} 失败" msgstr "{node_name} failed" -#: apps/node_man/views/ap.py:345 +#: apps/node_man/views/ap.py:375 #, python-brace-format msgid "该接入点正在被云区域 {cloud_names} 使用" msgstr "This access point is being used by cloud area {cloud_names}" -#: apps/node_man/views/meta.py:105 +#: apps/node_man/views/meta.py:120 msgid "您没有权限修改任务配置" msgstr "You do not have permission to modify task configuration" -#: apps/node_man/views/permission.py:50 common/api/modules/bk_node.py:19 -#: config/default.py:284 +#: apps/node_man/views/permission.py:57 common/api/modules/bk_node.py:19 +#: config/default.py:301 msgid "节点管理" msgstr "NodeMan" @@ -4628,14 +5515,18 @@ msgstr "NodeMan" msgid "请求参数必须全部为整数" msgstr "Request parameters must all be integers" -#: apps/utils/orm.py:71 +#: apps/utils/orm.py:99 msgid "删除时间" msgstr "Delete time" -#: apps/utils/orm.py:72 +#: apps/utils/orm.py:100 msgid "删除者" msgstr "Removed by" +#: apps/utils/orm.py:177 pipeline/models.py:278 +msgid "修改者" +msgstr "editor" + #: common/api/base.py:185 #, python-brace-format msgid "[{module}]API请求异常:({error_message})" @@ -5304,10 +6195,6 @@ msgstr "Template Name" msgid "描述" msgstr "description" -#: pipeline/models.py:278 -msgid "修改者" -msgstr "editor" - #: pipeline/models.py:279 pipeline/models.py:505 msgid "修改时间" msgstr "Change the time"