Skip to content

Commit

Permalink
feat: 配置示例:1.根据输入路径自动判断是否为windows路径改为 增加系统单选框,根据单选框判断是否为windows路径;相关逻…
Browse files Browse the repository at this point in the history
…辑调整;2.键值型命令行工具增加windows相关功能--story=119618143 (#3569)
  • Loading branch information
q15971095971 authored Oct 14, 2024
1 parent 251fe79 commit 5cbfebd
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 38 deletions.
7 changes: 4 additions & 3 deletions bcs-services/bcs-bscp/ui/src/i18n/en-us.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,6 @@ export default {
文件own必须有读取权限: 'The file owner must have read permission',
最大长度1024个字符: 'Maximum length of 1024 characters',
'无效的路径,路径不符合Unix文件路径格式规范': 'Invalid path, the path does not comply with the Unix file path format specification',
'无效的路径,路径不符合Unix或Windows文件路径格式规范': 'Invalid path, the path does not conform to Unix or Windows file path format specifications',
最大长度200个字符: 'Maximum length of 200 characters',
请上传文件: 'Please upload the file',
'配置内容不能超过{size}M': 'Configuration content cannot exceed {size}M',
Expand Down Expand Up @@ -849,8 +848,8 @@ export default {
复制成功: 'Copy Successful',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到 /tmp 目录时,文件保存在 /tmp/etc/nginx.conf': 'When downloading configuration files, preserve directory structure and save them to a specified directory. For example, downloading the file /etc/nginx.conf to the /tmp directory would save it as /tmp/etc/nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到 /tmp 目录时,文件保存在 /tmp/nginx.conf': 'When downloading configuration files, do not preserve directory structure and save them directly to a specified directory. For example, downloading the file /etc/nginx.conf to the /tmp directory would save it as /tmp/nginx.conf',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf': 'When downloading the configuration file, retain the directory structure and save it to a specified directory. For example, when downloading the \\etc\\nginx.conf file to the current directory, it should be saved as .\\etc\\nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf': 'When downloading the configuration file, do not retain the directory structure and save it to a specified directory. For example, when downloading the \\etc\\nginx.conf file to the current directory, it should be saved as .\\nginx.conf',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf': 'When downloading the configuration file, retain the directory structure and save it to a specified directory. For example, when downloading the /etc/nginx.conf file to the current directory, it should be saved as .\\etc\\nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf': 'When downloading the configuration file, do not retain the directory structure and save it to a specified directory. For example, when downloading the /etc/nginx.conf file to the current directory, it should be saved as .\\nginx.conf',
'BSCP Python SDK依赖说明': 'dependency instructions in the BSCP Python SDK',
'用于主动获取配置项值的场景,此方法不会监听服务器端的配置更改,有关Python SDK的部署环境和依赖组件,请参阅白皮书中的': 'For scenarios where configuration values are actively retrieved, this method does not monitor server-side configuration changes. For information on the deployment environment and dependent components of the Python SDK, please refer to the',
'通过建立长连接,实时监听配置版本的变更,当新版本的配置发布时,将自动调用回调方法处理新的配置信息,适用于需要实时响应配置变更的场景,有关Python SDK的部署环境和依赖组件,请参阅白皮书中的': 'By establishing a persistent connection, real-time changes to configuration versions are monitored. When a new version of configuration is released, the callback method is automatically invoked to handle the new configuration information. This method is suitable for scenarios requiring real-time response to configuration changes. For information on the deployment environment and dependent components of the Python SDK, please refer to the',
Expand Down Expand Up @@ -889,6 +888,8 @@ export default {
'(全局配置文件筛选与服务配置文件筛选一样,不同的是全局配置文件筛选可供多个服务共用)': '(The filtering of the global configuration file is the same as that of the service configuration file; the difference is that the global configuration file can be shared among multiple services)',
配置筛选规则: 'Configuration filtering rules',
'服务feed-server地址:': 'The address of the feed-server service:',
'无效的路径,路径不符合systemType文件路径格式规范': 'Invalid path, the path does not comply with the {systemType} file path format specification',
客户端操作系统: 'Client operating system',

// 公共组件
页面不存在: 'Page does not exist',
Expand Down
7 changes: 4 additions & 3 deletions bcs-services/bcs-bscp/ui/src/i18n/zh-cn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@ export default {
文件own必须有读取权限: '文件own必须有读取权限',
最大长度1024个字符: '最大长度1024个字符',
'无效的路径,路径不符合Unix文件路径格式规范': '无效的路径,路径不符合Unix文件路径格式规范',
'无效的路径,路径不符合Unix或Windows文件路径格式规范': '无效的路径,路径不符合Unix或Windows文件路径格式规范',
最大长度200个字符: '最大长度200个字符',
请上传文件: '请上传文件',
'配置内容不能超过{size}M': '配置内容不能超过{size}M',
Expand Down Expand Up @@ -853,8 +852,8 @@ export default {
复制成功: '复制成功',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到 /tmp 目录时,文件保存在 /tmp/etc/nginx.conf': '下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到 /tmp 目录时,文件保存在 /tmp/etc/nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到 /tmp 目录时,文件保存在 /tmp/nginx.conf': '下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到 /tmp 目录时,文件保存在 /tmp/nginx.conf',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf': '下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf': '下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf': '下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf': '下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf',
'BSCP Python SDK依赖说明': 'BSCP Python SDK依赖说明',
'用于主动获取配置项值的场景,此方法不会监听服务器端的配置更改,有关Python SDK的部署环境和依赖组件,请参阅白皮书中的': '用于主动获取配置项值的场景,此方法不会监听服务器端的配置更改,有关Python SDK的部署环境和依赖组件,请参阅白皮书中的',
'通过建立长连接,实时监听配置版本的变更,当新版本的配置发布时,将自动调用回调方法处理新的配置信息,适用于需要实时响应配置变更的场景,有关Python SDK的部署环境和依赖组件,请参阅白皮书中的': '通过建立长连接,实时监听配置版本的变更,当新版本的配置发布时,将自动调用回调方法处理新的配置信息,适用于需要实时响应配置变更的场景,有关Python SDK的部署环境和依赖组件,请参阅白皮书中的',
Expand Down Expand Up @@ -892,6 +891,8 @@ export default {
'(全局配置文件筛选与服务配置文件筛选一样,不同的是全局配置文件筛选可供多个服务共用)': '全局配置文件筛选与服务配置文件筛选一样,不同的是全局配置文件筛选可供多个服务共用',
配置筛选规则: '配置筛选规则',
'服务feed-server地址:': '服务feed-server地址:',
'无效的路径,路径不符合systemType文件路径格式规范': '无效的路径,路径不符合{systemType}文件路径格式规范',
客户端操作系统: '客户端操作系统',

// 公共组件
页面不存在: '页面不存在',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
:directory-show="basicInfo!.serviceType.value === 'file'"
:associate-config-show="basicInfo!.serviceType.value === 'file'"
:dual-system-support="true"
@is-windows-path="isWindowsPath = $event"
@update-option-data="getOptionData" />
<div class="preview-container">
<p class="headline">{{ $t('配置指引与示例预览') }}</p>
Expand All @@ -18,14 +17,14 @@
</p>
<template v-else>
<bk-button theme="primary" class="copy-btn" @click="copyExample">
{{ $t(isWindowsPath ? '复制配置' : '复制命令') }}
{{ $t(optionData.systemType === 'Windows' ? '复制配置' : '复制命令') }}
</bk-button>
<code-preview
:class="[
'preview-component',
{ 'preview-component--kvcmd': basicInfo!.serviceType.value === 'kv' },
{ 'rules-height': optionData.rules.length },
{ 'windows-path-height': isWindowsPath },
{ 'windows-path-height': optionData.systemType === 'Windows' },
]"
:code-val="replaceVal"
:variables="variables"
Expand Down Expand Up @@ -130,13 +129,13 @@
},
{
title: t(
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf',
'下载配置文件时,保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\etc\\nginx.conf',
),
value: `.\\bscp.exe get file /etc/nginx.conf -a ${basicInfo!.serviceName.value} -c .\\bscp.yaml -d .\\`,
},
{
title: t(
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 \\etc\\nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf',
'下载配置文件时,不保留目录层级,并将其保存到指定目录下,例如:将 /etc/nginx.conf 文件下载到当前目录时,文件保存在 .\\nginx.conf',
),
value: `.\\bscp.exe get file /etc/nginx.conf -a ${basicInfo!.serviceName.value} -c .\\bscp.yaml -d .\\ --ignore-dir`,
},
Expand Down Expand Up @@ -180,29 +179,70 @@
},
];
const windowsKvText = [
{
title: t('下载二进制命令行'),
value: 'go install github.com/TencentBlueKing/bscp-go/cmd/bscp@latest',
tips: {
title: t('如果没有安装 GO,可以通过浏览器手动下载,建议下载最新版本'),
value: t('下载地址:'),
url: 'https://github.com/TencentBlueKing/bscp-go/releases/',
},
},
{
title: t('为命令行工具创建所需的配置文件bscp.yaml'),
value: '',
},
{
title: t('获取业务下的服务列表'),
value: '.\\bscp.exe get app -c .\\bscp.yaml',
},
{
title: t('获取指定服务下所有配置项列表'),
value: `.\\bscp.exe get kv -a ${basicInfo!.serviceName.value} -c .\\bscp.yaml`,
},
{
title: t('获取指定服务下指定配置项列表,多个配置项'),
value: `.\\bscp.exe get kv -a ${basicInfo!.serviceName.value} key1 key2 -c .\\bscp.yaml`,
},
{
title: t('获取指定服务下指定配置项值,只支持单个配置项值获取'),
value: `.\\bscp.exe get kv -a ${basicInfo!.serviceName.value} key1 -c .\\bscp.yaml -o value`,
},
{
title: t(
'获取指定服务下指定配置项元数据,支持多个配置项元数据获取,没有指定配置项,获取服务下所有配置项的元数据',
),
value: `.\\bscp.exe get kv -a ${basicInfo!.serviceName.value} key1 key2 -c .\\bscp.yaml -o json`,
},
];
const fileOptionRef = ref();
const bkBizId = ref(String(route.params.spaceId));
const codeVal = ref(''); // 存储yaml字符原始值
const replaceVal = ref('');
const copyReplaceVal = ref(''); // 渲染的值,用于复制未脱敏密钥的yaml数据
const variables = ref<IVariableEditParams[]>();
const isWindowsPath = ref(false);
// fileOption组件传递过来的数据汇总
const optionData = ref({
clientKey: '',
privacyCredential: '',
labelArr: [],
tempDir: '',
rules: [],
systemType: 'Unix',
});
const cmdContent = computed(() => {
if (basicInfo!.serviceType.value === 'file') {
if (isWindowsPath.value) {
if (optionData.value.systemType === 'Windows') {
return windowsFileText; // 文件型-windows路径提示文案
}
return fileText; // 文件型-unix路径提示文案
}
if (optionData.value.systemType === 'Windows') {
return windowsKvText; // 键值型-windows路径提示文案
}
return kvText;
});
Expand Down Expand Up @@ -240,11 +280,9 @@ config_matches: {{ .Bk_Bscp_Variable_Rules_Value }}`;
updateString = updateString.replaceAll('{{ .Bk_Bscp_Variable_Rules }}', rulesPart);
} else {
updateString = updateString.replaceAll('{{ .Bk_Bscp_Variable_Rules }}', 'delete');
// updateString = updateString.replaceAll('\r\n{{ .Bk_Bscp_Variable_Rules }}', '');
}
// 临时目录为windows路径时去除首尾两行
if (isWindowsPath.value) {
// updateString = updateString.replaceAll('cat << EOF > ./bscp.yaml\r\n', '').replaceAll('\r\nEOF', '');
if (optionData.value.systemType === 'Windows') {
updateString = updateString.replaceAll('cat << EOF > ./bscp.yaml', 'delete').replaceAll('EOF', 'delete');
}
// 去除 动态插入的值为空的情况下产生的空白行
Expand Down Expand Up @@ -382,9 +420,6 @@ config_matches: {{ .Bk_Bscp_Variable_Rules_Value }}`;
height: 336px;
padding: 16px 10px;
background-color: #f5f7fa;
&--kvcmd {
height: 279px;
}
&.rules-height {
height: 394px;
}
Expand All @@ -394,5 +429,12 @@ config_matches: {{ .Bk_Bscp_Variable_Rules_Value }}`;
&.rules-height.windows-path-height {
height: 356px;
}
&--kvcmd {
height: 279px;
// 键值型cmd没有规则筛选
&.windows-path-height {
height: 242px;
}
}
}
</style>
Loading

0 comments on commit 5cbfebd

Please sign in to comment.