diff --git a/docs/smart/web/app_desc.yaml b/docs/smart/web/app_desc.yaml index bb59af0095..3e27965235 100644 --- a/docs/smart/web/app_desc.yaml +++ b/docs/smart/web/app_desc.yaml @@ -25,6 +25,12 @@ modules: replicas: 1 resQuotaPlan: default targetPort: 80 + services: + - name: web + exposedType: + name: bk/http + targetPort: 80 + port: 80 configuration: env: - name: "GO_INSTALL_PACKAGE_SPEC" diff --git a/docs/support-file/changelog/release.md b/docs/support-file/changelog/release.md index 634949ccab..715b321eab 100644 --- a/docs/support-file/changelog/release.md +++ b/docs/support-file/changelog/release.md @@ -59,7 +59,7 @@ - 导出字段选择变更加入二次退出确认 - 修复了一些国际化问题 -## [Version: v3.14.1-beta1] - 2024-09-27 +## [Version: v3.14.1] - 2024-12-03 **新增功能** - 新增一种全量数据缓存的方式 - 新增资产编码自动生成功能 @@ -67,6 +67,7 @@ **架构调整** - 产品架构分层,SaaS和后台建设分离 +- 版本依赖:PaaS 3.0 >= 1.5.0-beta.14 **功能优化** - 优化显示主机详情标题 @@ -83,6 +84,40 @@ - 集群模板同步历史点击enter触发不了搜索 - 修复当streamTo不存在时,gse接口查询报错的问题 +## [Version: v3.13.12] - 2024-11-22 +**新增功能** +- 新增校验登录态接口is_login +- 新增CMDB数据库表结构文档 + +**功能优化** +- 云厂商图标和icon调整 +- add_host_to_resource、add_host_to_resource_pool接口支持添加单ipv6主机 +- 修改资源目录中业务条目显示的数量为“未归档的业务数” +- 去除动态分组$in操作符的string类型校验 +- 首页搜索框提示文字调整 +- 平台全量业务选择器卡顿优化 +- 表格操作列宽度兼容英文 + +**缺陷修复** +- 服务分类-当点击编辑二级分类后,所有一级分类的删除和新增图标会被隐藏 +- 修复枚举多选字段主机自动应用后,主机转移失败的问题 +- 修复权限中心查询实例时输入正则表达式中的部分特殊字符时报错问题 +- 修复导出实例和主机时勾选导出关联模型实例但未成功导出的问题 +- 修复操作审计—>其他Tab,操作对象=模型分组、模型,动作有误问题 +- 修复下发主机身份文件逻辑死循环问题 +- 修复容器拓扑显示的主机数量与实际不符问题 +- 主机模型关联内置关联的唯一标识没有显示出来 +- 业务集节点信息下,单独只点击复制ID或集群/模块名称按钮后,会提示两个“复制成功” +- 项目/业务集/业务下,搜索框输入条件后不点击不会还原 +- 人员选择器点击“我”之后清除之前的输入值 +- 服务/集群模版添加属性字段没有空规范 +- 业务服务实例下进程与实例操作栏样式不一致 +- 服务分类关键字搜索后删除数据不实时更新 +- 服务分类编辑二级分类后,一级分类变回操作态 +- 模型管理解除字段模板时候刷新字段 +- 业务集服务实例下的标签多出了一个“...”符号 +- 国际化问题修复 + ## [Version: v3.13.11] - 2024-10-18 **新增功能** - 添加CMDB数据同步服务 @@ -355,6 +390,43 @@ **缺陷修复** - 修复map类型不一致导致索引重复创建的问题 +## [Version: v3.11.4] - 2024-11-14 +**功能优化** +- 事务重试失败时返回错误 +- 优化table初始化时样式、显示主机详情标题,优化安装部署文档 +- 修改资源目录中业务条目显示的数量为“未归档的业务数” +- 去掉servicemonitor.yaml中的namespaceSelector字段 +- 校验search_host接口传入参数,支持根据集群模块的default和bk_parent_id字段进行查询 +- 检查导入文件的后缀名 +- 根据agentid消费采集器数据,未查询到主机设置空字符串缓存 +- 调整主机磁盘容量计算方式 + +**缺陷修复** +- 修复下发主机身份文件逻辑死循环问题 +- 修复服务模板主机自动应用备份负责人、修复删除模块和服务模板时主机自动应用、主机自动应用中特定条件无法搜索、多选自定义枚举应用后未成功显示问题 +- 修复前端输入框、主机目录、审计页面、模型分组删除提示问题、模型关联显示问题、解绑模版后未实时更新问题,服务分类删除和新增图标被隐藏、国际化未切换语言问题 +- info、title样式优化,新增subtitle,导航栏规范优化,规范优化页面样式 +- 修复procserver map并发读写panic,esb接口、list_hosts_without_biz、search_host接口问题修复 +- 语言切换次序以及cookie有效期时长优化,修复实例名显示未国际化问题 +- 修复模型实例关联拓扑图箭头指向、点击实例ID链接无跳转、批量同步服务模板实例的属性及导出问题 +- 业务集兼容业务类型范围值为非数组情况 +- 业务拓扑模块节点信息下,"集群模板",“服务模板”和"主机属性自动应用”均应打开新页面 +- 业务集/云账户操作列定宽,平台管理可建层级范围3-10 +- 校验分页参数的start和limit均不可以小于0,limit为负数时coreservicepanic的问题,查询模型字段无条件时panic的问题 +- 修复一些watch相关问题 +- 修复权限中心查询实例时输入正则表达式中的部分特殊字符时报错问题 +- 修复query filter中value没有填时报错的问题 +- 修复模型属性字段导出excel时部分默认值未导出,excel导入时报错信息不规范及未校验文件格式问题 +- 修复预览动态分组时提示:‘获取自定义查询详情失败, HTTP请求失败’的问题 +- 修复导入动态寻址方式的主机时显示导入成功但主机不存在的问题 +- 修复模型导入属性字段顺序错乱、字段所属分组错乱问题,模型实例属性编辑时应不使用默认值 +- 修复注册旧dataid失败问题 +- 修复创建主线拓扑节点时,可以使用string类型的bk_parent_id的问题 +- 修复不同业务下的自定义字段冲突问题 +- 修复根据集群模板id查不到模块时返回业务所有服务实例的问题 +- 修复审计查询接口鉴权问题 + + ## [Version: v3.11.3] - 2023-12-19 **功能优化** - 优化了一些前端的显示问题 diff --git a/docs/support-file/changelog_user/ch/v3.11.4_2024-10-30.md b/docs/support-file/changelog_user/ch/v3.11.4_2024-10-30.md new file mode 100644 index 0000000000..5ac00d840d --- /dev/null +++ b/docs/support-file/changelog_user/ch/v3.11.4_2024-10-30.md @@ -0,0 +1,38 @@ +### 修复 + +- [修复] 修复下发主机身份文件逻辑死循环问题 +- [修复] 修复服务模板主机自动应用备份负责人、修复删除模块和服务模板时主机自动应用、主机自动应用中特定条件无法搜索问题、多选自定义枚举未应用问题 +- [修复] 修复前端输入框、主机目录、审计页面、模型分组删除提示问题、模型关联显示问题、解绑模版后未实时更新问题,规范优化页面样式 +- [修复] info、title样式优化,新增subtitle,导航栏规范优化,表格字段设置弹窗底部样式、文案、交互优化 +- [修复] 修复procserver map并发读写panic,esb接口、list_hosts_without_biz、search_host接口问题修复 +- [修复] 语言切换次序以及cookie有效期时长优化 +- [修复] 修复模型实例关联拓扑图箭头指向、点击实例ID链接无跳转、批量同步服务模板实例的属性及导出问题 +- [修复] 业务集兼容业务类型范围值为非数组情况 +- [修复] 业务拓扑模块节点信息下,"集群模板",“服务模板”和"主机属性自动应用”均应打开新页面 +- [修复] 业务集/云账户操作列定宽,平台管理可建层级范围3-10 +- [修复] 校验分页参数的start和limit均不可以小于0,limit为负数时coreservicepanic的问题,查询模型字段无条件时panic的问题 +- [修复] 修复一些watch相关问题 +- [修复] 修复权限中心查询实例时输入正则表达式中的部分特殊字符时报错问题 +- [修复] 修复query filter中value没有填时报错的问题 +- [修复] 修复模型属性字段导出excel时部分默认值未导出,excel导入时报错信息不规范及未校验文件格式问题 +- [修复] 修复预览动态分组时提示:‘获取自定义查询详情失败, HTTP请求失败’的问题 +- [修复] 修复导入动态寻址方式的主机时显示导入成功但主机不存在的问题 +- [修复] 修复模型导入属性字段顺序错乱、字段所属分组错乱问题,模型实例属性编辑时应不使用默认值 +- [修复] 修复注册旧dataid失败问题 +- [修复] 修复创建主线拓扑节点时,可以使用string类型的bk_parent_id的问题 +- [修复] 修复不同业务下的自定义字段冲突问题 +- [修复] 修复根据集群模板id查不到模块时返回业务所有服务实例的问题 +- [修复] 修复审计查询接口鉴权问题 +- [修复] 修复前端服务分类删除和新增图标被隐藏、国际化未切换语言问题 +- [修复] 修复主机自动应用自定义字段后转移主机失败问题 + +### 优化 + +- [优化] 事务重试失败时返回错误 +- [优化] 优化table初始化时样式、显示主机详情标题,优化安装部署文档 +- [优化] 修改资源目录中业务条目显示的数量为“未归档的业务数” +- [优化] 去掉servicemonitor.yaml中的namespaceSelector字段 +- [优化] 校验search_host接口传入参数,支持根据集群模块的default和bk_parent_id字段进行查询 +- [优化] 检查导入文件的后缀名 +- [优化] 根据agentid消费采集器数据,未查询到主机设置空字符串缓存 +- [优化] 调整主机磁盘容量计算方式 \ No newline at end of file diff --git a/docs/support-file/changelog_user/ch/v3.13.12_2024-11-22.md b/docs/support-file/changelog_user/ch/v3.13.12_2024-11-22.md new file mode 100644 index 0000000000..051249277a --- /dev/null +++ b/docs/support-file/changelog_user/ch/v3.13.12_2024-11-22.md @@ -0,0 +1,35 @@ +### 新增 + +- [新增] 新增校验登录态接口is_login +- [新增] 新增CMDB数据库表结构文档 + +### 优化 + +- [优化] 云厂商图标和icon调整 +- [优化] add_host_to_resource、add_host_to_resource_pool接口支持添加单ipv6主机 +- [优化] 修改资源目录中业务条目显示的数量为“未归档的业务数” +- [优化] 去除动态分组$in操作符的string类型校验 +- [优化] 首页搜索框提示文字调整 +- [优化] 平台全量业务选择器卡顿优化 +- [优化] 表格操作列宽度兼容英文 + +### 修复 + +- [修复] 服务分类-当点击编辑二级分类后,所有一级分类的删除和新增图标会被隐藏 +- [修复] 修复枚举多选字段主机自动应用后,主机转移失败的问题 +- [修复] 修复权限中心查询实例时输入正则表达式中的部分特殊字符时报错问题 +- [修复] 修复导出实例和主机时勾选导出关联模型实例但未成功导出的问题 +- [修复] 修复操作审计—>其他Tab,操作对象=模型分组、模型,动作有误问题 +- [修复] 修复下发主机身份文件逻辑死循环问题 +- [修复] 修复容器拓扑显示的主机数量与实际不符问题 +- [修复] 主机模型关联内置关联的唯一标识没有显示出来 +- [修复] 业务集节点信息下,单独只点击复制ID或集群/模块名称按钮后,会提示两个“复制成功” +- [修复] 项目/业务集/业务下,搜索框输入条件后不点击不会还原 +- [修复] 人员选择器点击“我”之后清除之前的输入值 +- [修复] 服务/集群模版添加属性字段没有空规范 +- [修复] 业务服务实例下进程与实例操作栏样式不一致 +- [修复] 服务分类关键字搜索后删除数据不实时更新 +- [修复] 服务分类编辑二级分类后,一级分类变回操作态 +- [修复] 模型管理解除字段模板时候刷新字段 +- [修复] 业务集服务实例下的标签多出了一个“...”符号 +- [修复] 国际化问题修复 diff --git a/docs/support-file/changelog_user/en/v3.11.4_2024-10-30.md b/docs/support-file/changelog_user/en/v3.11.4_2024-10-30.md new file mode 100644 index 0000000000..662e41a38b --- /dev/null +++ b/docs/support-file/changelog_user/en/v3.11.4_2024-10-30.md @@ -0,0 +1,38 @@ +### Fixed + +- [Fixed] Fixed the logic deadlock issue with the distribution of host identity files. +- [Fixed] Fixed the issues with automatic application of backup persons for service template hosts, automatic deletion of hosts from modules and service templates, and the inability to search under specific conditions in host automatic application, issue with multi-select custom enumeration not being applied. +- [Fixed] Fix front-end input box, host directory, audit page, model group deletion prompt issue, model association display issue, failure to update in real-time after template unbinding, standardize and optimize page styles. +- [Fixed] Optimized info and title styles, added subtitle, standardized navigation bar, and optimized the bottom style, copywriting, and interaction of the table field settings pop-up. +- [Fixed] Fixed the panic issue caused by concurrent read and write operations in procserver map, issues with ESB interface, list_hosts_without_biz, and search_host interfaces. +- [Fixed] Optimized the language switching sequence and the duration of cookie validity. +- [Fixed] Fixed issues with the arrow direction in the model instance association topology diagram, no redirection when clicking on instance ID links, and issues with batch synchronization of service template instance attributes and exports. +- [Fixed] Fixed the compatibility issue of business set with non-array values for business type range. +- [Fixed] Fixed the issue where `Cluster Template`, `Service Template`, and `Host Attribute Automatic Application` should open in new pages under the business topology module node information. +- [Fixed] Fixed the fixed width of the operation column in business set/cloud account, and the range of levels that can be created in platform management from 3 to 10. +- [Fixed] Fixed the issue where start and limit parameters for pagination validation could not be less than 0, core service panicked when limit was negative, and panic issues when querying model fields without conditions. +- [Fixed] Fixed some watch-related issues. +- [Fixed] Fixed the error issue when entering special characters from regular expressions in the permission center instance query. +- [Fixed] Fixed the error issue when value was not filled in query filter. +- [Fixed] Fixed the issue where some default values were not exported when exporting model attribute fields to Excel, the error message during Excel import was not standardized, and file format was not verified during import. +- [Fixed] Fixed the issue where the prompt `Failed to get custom query details, HTTP request failed` appeared when previewing dynamic groups. +- [Fixed] Fixed the issue where hosts imported with dynamic addressing method showed as successfully imported but did not exist. +- [Fixed] Fixed the issue with disordered model import attribute field order, incorrect field grouping, and the use of default values during model instance attribute editing. +- [Fixed] Fixed the issue with failed registration of old dataids. +- [Fixed] Fixed the issue where string type bk_parent_id could be used when creating mainline topology nodes. +- [Fixed] Fixed the issue with custom field conflicts under different businesses. +- [Fixed] Fixed the issue where all service instances of the business were returned when no module was found by the cluster template id. +- [Fixed] Fix the authentication issue for the audit query interface. +- [Fixed] Fixed front-end service category deletion and new ICONS being hidden and international language not switched. +- [Fixed] Fixed the host transfer failure after the host automatically applies user-defined fields. + +### Improved + +- [Improved] Return error when transaction retry fails. +- [Improved] Optimized the style during table initialization, display of the host details title, and the installation and deployment documentation. +- [Improved] Changed the number of business entries displayed in the resource directory to `Number of unarchived businesses`. +- [Improved] Removed the namespaceSelector field from servicemonoryaml. +- [Improved] Validated the parameters passed to the search_host interface and supported querying based on the default and bk_parent_id fields of cluster modules. +- [Improved] Checked the file extension of imported files. +- [Improved] Set an empty string cache when consuming collector data based on agentid and the host is not found. +- [Improved] Adjusted the method of calculating host disk capacity. \ No newline at end of file diff --git a/docs/support-file/changelog_user/en/v3.13.12_2024-11-22.md b/docs/support-file/changelog_user/en/v3.13.12_2024-11-22.md new file mode 100644 index 0000000000..448c8f5660 --- /dev/null +++ b/docs/support-file/changelog_user/en/v3.13.12_2024-11-22.md @@ -0,0 +1,35 @@ +### Feature + +- [Feature] Added a login status verification interface is_login +- [Feature] Added CMDB database table structure document + +### Improved + +- [Improved] Cloud vendor icons and icon adjustments +- [Improved] Add_host_to_resource, add_host_to_resource_pool interfaces support adding a single ipv6 host +- [Improved] Modify the number of business items displayed in the resource directory to "unarchived business number" +- [Improved] Remove the string type check of the dynamic group $in operator +- [Improved] Home search box prompt text adjustment +- [Improved] Platform full business selector lag optimization +- [Improved] Table operation column width compatible with English + +### Fixed + +- [Fixed] Service classification-When clicking to edit the second-level classification, all the first-level classification delete and add icons will be hidden +- [Fixed] Fixed the problem that the host transfer failed after the enumeration multi-select field host was automatically applied +- [Fixed] Fixed the error when entering some special characters in the regular expression when querying the instance in the permission center +- [Fixed] Fixed the problem that the export of associated model instances was checked but failed when exporting instances and hosts +- [Fixed] Fixed the problem that the operation audit -> Other Tab, the operation object = model group, model, the action was incorrect +- [Fixed] Fixed the logical dead loop problem of sending host identity files +- [Fixed] Fixed the problem that the number of hosts displayed in the container topology does not match the actual number +- [Fixed] The unique identifier of the built-in association of the host model association is not displayed +- [Fixed] Under the business set node information, after clicking only the copy ID or cluster/module name button, two "copy successful" prompts will be displayed +- [Fixed] Under the project/business set/business, the search box will not be restored after entering the conditions without clicking +- [Fixed] After clicking "I" in the personnel selector, the previous input value is cleared +- [Fixed] There is no empty specification for adding attribute fields to the service/cluster template +- [Fixed] The process and instance operation bar styles are inconsistent under the business service instance +- [Fixed] After deleting the data after the service classification keyword search +- [Fixed] After editing the secondary classification of the service classification, the primary classification returns to the operation state +- [Fixed] Refresh the field when the model management releases the field template +- [Fixed] An additional "..." symbol appears in the label under the business set service instance +- [Fixed] Internationalization issue fixes diff --git a/resources/language/default/enum.json b/resources/language/default/enum.json index b3cce51138..be698f3d8f 100644 --- a/resources/language/default/enum.json +++ b/resources/language/default/enum.json @@ -44,20 +44,22 @@ "plat_property_bk_cloud_vendor_enum_1": "亚马逊云", "plat_property_bk_cloud_vendor_enum_2": "腾讯云", - "plat_property_bk_cloud_vendor_enum_3": "GCP", + "plat_property_bk_cloud_vendor_enum_3": "谷歌云", "plat_property_bk_cloud_vendor_enum_4": "微软云", "plat_property_bk_cloud_vendor_enum_5": "企业私有云", - "plat_property_bk_cloud_vendor_enum_6": "雨花石云", - "plat_property_bk_cloud_vendor_enum_7": "Oracle云", - "plat_property_bk_cloud_vendor_enum_8": "IBM云", + "plat_property_bk_cloud_vendor_enum_6": "SalesForce", + "plat_property_bk_cloud_vendor_enum_7": "Oracle Cloud", + "plat_property_bk_cloud_vendor_enum_8": "IBM Cloud", "plat_property_bk_cloud_vendor_enum_9": "阿里云", "plat_property_bk_cloud_vendor_enum_10": "中国电信", - "plat_property_bk_cloud_vendor_enum_11": "优云", + "plat_property_bk_cloud_vendor_enum_11": "UCloud", "plat_property_bk_cloud_vendor_enum_12": "美团云", "plat_property_bk_cloud_vendor_enum_13": "金山云", "plat_property_bk_cloud_vendor_enum_14": "百度云", "plat_property_bk_cloud_vendor_enum_15": "华为云", "plat_property_bk_cloud_vendor_enum_16": "首都云", + "plat_property_bk_cloud_vendor_enum_17": "腾讯自研云", + "plat_property_bk_cloud_vendor_enum_18": "Zenlayer", "plat_property_bk_status_enum_1": "正常", "plat_property_bk_status_enum_2": "异常", @@ -71,20 +73,22 @@ "host_property_bk_cloud_vendor_enum_1" : "亚马逊云", "host_property_bk_cloud_vendor_enum_2" : "腾讯云", - "host_property_bk_cloud_vendor_enum_3": "GCP", + "host_property_bk_cloud_vendor_enum_3": "谷歌云", "host_property_bk_cloud_vendor_enum_4": "微软云", "host_property_bk_cloud_vendor_enum_5": "企业私有云", - "host_property_bk_cloud_vendor_enum_6": "雨花石云", - "host_property_bk_cloud_vendor_enum_7": "Oracle云", - "host_property_bk_cloud_vendor_enum_8": "IBM云", + "host_property_bk_cloud_vendor_enum_6": "SalesForce", + "host_property_bk_cloud_vendor_enum_7": "Oracle Cloud", + "host_property_bk_cloud_vendor_enum_8": "IBM Cloud", "host_property_bk_cloud_vendor_enum_9": "阿里云", "host_property_bk_cloud_vendor_enum_10": "中国电信", - "host_property_bk_cloud_vendor_enum_11": "优云", + "host_property_bk_cloud_vendor_enum_11": "UCloud", "host_property_bk_cloud_vendor_enum_12": "美团云", "host_property_bk_cloud_vendor_enum_13": "金山云", "host_property_bk_cloud_vendor_enum_14": "百度云", "host_property_bk_cloud_vendor_enum_15": "华为云", "host_property_bk_cloud_vendor_enum_16": "首都云", + "host_property_bk_cloud_vendor_enum_17": "腾讯自研云", + "host_property_bk_cloud_vendor_enum_18": "Zenlayer", "host_property_bk_isp_name_enum_0": "其它", "host_property_bk_isp_name_enum_1": "电信", diff --git a/resources/language/en/enum.json b/resources/language/en/enum.json index 487ebf8780..501abc262f 100644 --- a/resources/language/en/enum.json +++ b/resources/language/en/enum.json @@ -51,22 +51,24 @@ "bk_firewall_property_bk_biz_status_enum_2": "online", "bk_firewall_property_bk_biz_status_enum_3": "offline", - "plat_property_bk_cloud_vendor_enum_1": "Aws", + "plat_property_bk_cloud_vendor_enum_1": "AWS", "plat_property_bk_cloud_vendor_enum_2": "Tencent Cloud", - "plat_property_bk_cloud_vendor_enum_3": "GCP", + "plat_property_bk_cloud_vendor_enum_3": "Google Cloud", "plat_property_bk_cloud_vendor_enum_4": "Azure", "plat_property_bk_cloud_vendor_enum_5": "Enterprise Private Cloud", - "plat_property_bk_cloud_vendor_enum_6": "SalesForce Cloud", + "plat_property_bk_cloud_vendor_enum_6": "SalesForce", "plat_property_bk_cloud_vendor_enum_7": "Oracle Cloud", "plat_property_bk_cloud_vendor_enum_8": "IBM Cloud", "plat_property_bk_cloud_vendor_enum_9": "Alibaba Cloud", - "plat_property_bk_cloud_vendor_enum_10": "China Telecom", + "plat_property_bk_cloud_vendor_enum_10": "ECloud", "plat_property_bk_cloud_vendor_enum_11": "UCloud", - "plat_property_bk_cloud_vendor_enum_12": "Meituan Cloud", - "plat_property_bk_cloud_vendor_enum_13": "Anshan cloud", + "plat_property_bk_cloud_vendor_enum_12": "MOS", + "plat_property_bk_cloud_vendor_enum_13": "KSyun", "plat_property_bk_cloud_vendor_enum_14": "Baidu Cloud", "plat_property_bk_cloud_vendor_enum_15": "Huawei Cloud", "plat_property_bk_cloud_vendor_enum_16": "Capital Cloud", + "plat_property_bk_cloud_vendor_enum_17": "Tencent Private Cloud", + "plat_property_bk_cloud_vendor_enum_18": "Zenlayer", "plat_property_bk_status_enum_1": "normal", "plat_property_bk_status_enum_2": "abnormal", @@ -360,22 +362,24 @@ "host_property_bk_cloud_host_status_enum_5" : "stopped", "host_property_bk_cloud_host_status_enum_6" : "destroyed", - "host_property_bk_cloud_vendor_enum_1" : "Aws", + "host_property_bk_cloud_vendor_enum_1" : "AWS", "host_property_bk_cloud_vendor_enum_2" : "Tencent Cloud", - "host_property_bk_cloud_vendor_enum_3": "GCP", + "host_property_bk_cloud_vendor_enum_3": "Google Cloud", "host_property_bk_cloud_vendor_enum_4": "Azure", "host_property_bk_cloud_vendor_enum_5": "Enterprise Private Cloud", - "host_property_bk_cloud_vendor_enum_6": "SalesForce Cloud", + "host_property_bk_cloud_vendor_enum_6": "SalesForce", "host_property_bk_cloud_vendor_enum_7": "Oracle Cloud", "host_property_bk_cloud_vendor_enum_8": "IBM Cloud", "host_property_bk_cloud_vendor_enum_9": "Alibaba Cloud", - "host_property_bk_cloud_vendor_enum_10": "China Telecom", + "host_property_bk_cloud_vendor_enum_10": "ECloud", "host_property_bk_cloud_vendor_enum_11": "UCloud", - "host_property_bk_cloud_vendor_enum_12": "Meituan Cloud", - "host_property_bk_cloud_vendor_enum_13": "Anshan Cloud", + "host_property_bk_cloud_vendor_enum_12": "MOS", + "host_property_bk_cloud_vendor_enum_13": "KSyun", "host_property_bk_cloud_vendor_enum_14": "Baidu Cloud", "host_property_bk_cloud_vendor_enum_15": "Huawei Cloud", "host_property_bk_cloud_vendor_enum_16": "Capital Cloud", + "host_property_bk_cloud_vendor_enum_17": "Tencent Private Cloud", + "host_property_bk_cloud_vendor_enum_18": "Zenlayer", "host_property_bk_isp_name_enum_0": "Others", "host_property_bk_isp_name_enum_1": "China Telecom", diff --git a/src/ac/parser/topology.go b/src/ac/parser/topology.go index 5822e3bbc3..494777b2ee 100644 --- a/src/ac/parser/topology.go +++ b/src/ac/parser/topology.go @@ -1342,7 +1342,7 @@ func (ps *parseStream) audit() *parseStream { { Basic: meta.Basic{ Type: meta.AuditLog, - Action: meta.Find, + Action: meta.SkipAction, }, }, } diff --git a/src/common/metadata/attribute.go b/src/common/metadata/attribute.go index 9f472e0a68..47574ff6a2 100644 --- a/src/common/metadata/attribute.go +++ b/src/common/metadata/attribute.go @@ -324,6 +324,18 @@ func (attribute *Attribute) validEnum(ctx context.Context, val interface{}, key } } +// CheckInterfaceSliceType check whether propertyValue type is []interface{} or primitive.A +func CheckInterfaceSliceType(propertyValue interface{}) ([]interface{}, errors.CCErrorCoder) { + switch t := propertyValue.(type) { + case []interface{}: + return t, nil + case primitive.A: + return t, nil + default: + return nil, errors.New(common.CCErrCommUnexpectedFieldType, "property value type error") + } +} + // validEnum valid object attribute that is enum multi type func (attribute *Attribute) validEnumMulti(ctx context.Context, val interface{}, key string) errors.RawErrorInfo { rid := util.ExtractRequestIDFromContext(ctx) @@ -353,8 +365,8 @@ func (attribute *Attribute) validEnumMulti(ctx context.Context, val interface{}, idMap[option.ID] = struct{}{} } - valIDs, ok := val.([]interface{}) - if !ok { + valIDs, ccErr := CheckInterfaceSliceType(val) + if ccErr != nil { blog.Errorf("convert val to interface slice failed, val type: %T", val) return errors.RawErrorInfo{ ErrCode: common.CCErrCommParamsInvalid, diff --git a/src/common/metadata/dynamic_grouping.go b/src/common/metadata/dynamic_grouping.go index de6f8875aa..f09f7ab955 100644 --- a/src/common/metadata/dynamic_grouping.go +++ b/src/common/metadata/dynamic_grouping.go @@ -139,11 +139,6 @@ func (c *DynamicGroupCondition) Validate(attributeMap map[string]string) error { case DynamicGroupOperatorEQ, DynamicGroupOperatorNE: return validAttributeValueType(attrType, c.Value) case DynamicGroupOperatorIN, DynamicGroupOperatorNIN: - if attrType != stringType { - return fmt.Errorf("operator %s only support string value, not support attribute type, %s", c.Operator, - attributeType) - } - valueArr, ok := c.Value.([]interface{}) if !ok { return fmt.Errorf("operator %s only support array value, not support value, %+v", c.Operator, c.Value) diff --git a/src/scene_server/admin_server/imports.go b/src/scene_server/admin_server/imports.go index b2d3544970..65d6f74e93 100644 --- a/src/scene_server/admin_server/imports.go +++ b/src/scene_server/admin_server/imports.go @@ -96,12 +96,10 @@ import ( // v3.12.x _ "configcenter/src/scene_server/admin_server/upgrader/y3.12.202309211735" _ "configcenter/src/scene_server/admin_server/upgrader/y3.12.202310301633" - _ "configcenter/src/scene_server/admin_server/upgrader/y3.12.202310302130" _ "configcenter/src/scene_server/admin_server/upgrader/y3.12.202311061800" // v3.13.x _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202401221600" - _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202402181900" _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202402191140" _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202402281158" _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202403151855" @@ -111,6 +109,7 @@ import ( _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202408011044" _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202408071435" _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202410091435" + _ "configcenter/src/scene_server/admin_server/upgrader/y3.13.202410311500" // 3.14.x _ "configcenter/src/scene_server/admin_server/upgrader/y3.14.202404031701" diff --git a/src/scene_server/admin_server/upgrader/y3.12.202310302130/add_business_set.go b/src/scene_server/admin_server/upgrader/y3.12.202310302130/add_business_set.go deleted file mode 100644 index ebcd923fbe..0000000000 --- a/src/scene_server/admin_server/upgrader/y3.12.202310302130/add_business_set.go +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making - * 蓝鲸智云 - 配置平台 (BlueKing - Configuration System) available. - * Copyright (C) 2017 THL A29 Limited, - * a Tencent company. All rights reserved. - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - * We undertake not to change the open source license (MIT license) applicable - * to the current version of the project delivered to anyone in the future. - */ - -package y3_12_202310302130 - -import ( - "context" - "fmt" - "time" - - "configcenter/src/common" - "configcenter/src/common/blog" - "configcenter/src/common/metadata" - "configcenter/src/scene_server/admin_server/upgrader" - "configcenter/src/storage/dal" -) - -const ( - bizSetID = 9992001 - bizSetName = "全业务-蓝盾测试部署专用" -) - -func addDefaultBusinessSet(ctx context.Context, db dal.RDB, conf *upgrader.Config) error { - now := metadata.Time{ - Time: time.Now(), - } - defaultBusinessSet := &metadata.BizSetInst{ - BizSetID: bizSetID, - BizSetName: bizSetName, - Description: "供蓝盾Job插件执行调用", - BizSetMaintainer: "admin", - CreateTime: now, - LastTime: now, - SupplierAccount: conf.OwnerID, - Scope: metadata.BizSetScope{ - MatchAll: true, - }, - Default: common.DefaultResBusinessSetFlag, - } - - result := make([]metadata.BizSetInst, 0) - filter := map[string]interface{}{ - common.BKDBOR: []map[string]interface{}{ - { - common.BKBizSetIDField: bizSetID, - }, - { - common.BKBizSetNameField: bizSetName, - }, - }, - } - - err := db.Table(common.BKTableNameBaseBizSet).Find(filter).All(ctx, &result) - if err != nil && !db.IsNotFoundError(err) { - blog.Errorf("find business set failed, err: %v", err) - return err - } - - if len(result) >= 2 { - blog.Errorf("business set id %s and name %s already exists, the number of business set that meet the "+ - "condition is greater than 2, val: %v", bizSetID, bizSetName, result) - return fmt.Errorf("failed to add default business set, business set id: %d or name: %s already exists, the "+ - "number of business set that meet the condition is greater than 2", bizSetID, bizSetName) - } - - if len(result) == 1 { - if result[0].BizSetID == bizSetID && result[0].BizSetName == bizSetName && result[0].Scope.MatchAll && - result[0].SupplierAccount == conf.OwnerID { - - if result[0].Default != common.DefaultResBusinessSetFlag { - data := map[string]interface{}{ - common.BKDefaultField: common.DefaultResBusinessSetFlag, - } - - if err := db.Table(common.BKTableNameBaseBizSet).Update(ctx, filter, data); err != nil { - blog.Errorf("update business set default val failed, err: %v", err) - return err - } - } - - return nil - } - - blog.Errorf("business set id %s or name %s already exists, user needs to deal with duplicates first to "+ - "successfully upgrade", bizSetID, bizSetName) - return fmt.Errorf("failed to add default business set, business set id: %d or name: %s already exists, user "+ - "needs to deal with duplicates first to successfully upgrade", bizSetID, bizSetName) - } - - if err := db.Table(common.BKTableNameBaseBizSet).Insert(ctx, defaultBusinessSet); err != nil { - blog.Errorf("insert default business set failed, val: %v, err: %v", defaultBusinessSet, err) - return err - } - - return nil -} diff --git a/src/scene_server/admin_server/upgrader/y3.12.202310302130/pkg.go b/src/scene_server/admin_server/upgrader/y3.12.202310302130/pkg.go deleted file mode 100644 index edaa8c8be0..0000000000 --- a/src/scene_server/admin_server/upgrader/y3.12.202310302130/pkg.go +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making - * 蓝鲸智云 - 配置平台 (BlueKing - Configuration System) available. - * Copyright (C) 2017 THL A29 Limited, - * a Tencent company. All rights reserved. - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - * We undertake not to change the open source license (MIT license) applicable - * to the current version of the project delivered to anyone in the future. - */ - -package y3_12_202310302130 - -import ( - "context" - - "configcenter/src/common/blog" - "configcenter/src/scene_server/admin_server/upgrader" - "configcenter/src/storage/dal" -) - -func init() { - upgrader.RegistUpgrader("y3.12.202310302130", upgrade) -} - -func upgrade(ctx context.Context, db dal.RDB, conf *upgrader.Config) (err error) { - blog.Infof("start execute y3.12.202310302130, add default business set") - - if err = addDefaultBusinessSet(ctx, db, conf); err != nil { - blog.Errorf("upgrade y3.12.202310302130 add default business set failed, err: %v", err) - return err - } - - blog.Infof("upgrade y3.12.202310302130 add default business set success") - return nil -} diff --git a/src/scene_server/admin_server/upgrader/y3.13.202402181900/update_biz_set_desc_field.go b/src/scene_server/admin_server/upgrader/y3.13.202402181900/update_biz_set_desc_field.go deleted file mode 100644 index 5a08634f72..0000000000 --- a/src/scene_server/admin_server/upgrader/y3.13.202402181900/update_biz_set_desc_field.go +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Tencent is pleased to support the open source community by making - * 蓝鲸智云 - 配置平台 (BlueKing - Configuration System) available. - * Copyright (C) 2017 THL A29 Limited, - * a Tencent company. All rights reserved. - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at http://opensource.org/licenses/MIT - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - * We undertake not to change the open source license (MIT license) applicable - * to the current version of the project delivered to anyone in the future. - */ - -package y3_13_202402181900 - -import ( - "context" - - "configcenter/src/common" - "configcenter/src/common/blog" - "configcenter/src/common/mapstr" - "configcenter/src/storage/dal" -) - -const ( - // bizSetID 相关业务集:全业务-蓝盾测试部署专用 - bizSetID = 9992001 - oldName = "description" - newName = "bk_biz_set_desc" -) - -func updateBizSetDescField(ctx context.Context, db dal.RDB) error { - cond := map[string]interface{}{ - common.BKBizSetIDField: bizSetID, - newName: mapstr.MapStr{"$exists": true}, - } - count, err := db.Table(common.BKTableNameBaseBizSet).Find(cond).Count(ctx) - if err != nil { - blog.Errorf("find business set failed, filter: %v, err: %v", cond, err) - return err - } - if count != 0 { - return nil - } - - filter := map[string]interface{}{ - common.BKBizSetIDField: bizSetID, - } - if err := db.Table(common.BKTableNameBaseBizSet).RenameColumn(ctx, filter, oldName, newName); err != nil { - blog.Errorf("rename biz set description field failed, filter: %v, err: %v", filter, err) - return err - } - return nil -} diff --git a/src/scene_server/admin_server/upgrader/y3.13.202402181900/pkg.go b/src/scene_server/admin_server/upgrader/y3.13.202410311500/pkg.go similarity index 76% rename from src/scene_server/admin_server/upgrader/y3.13.202402181900/pkg.go rename to src/scene_server/admin_server/upgrader/y3.13.202410311500/pkg.go index 3e67c7bb9b..4615d59c17 100644 --- a/src/scene_server/admin_server/upgrader/y3.13.202402181900/pkg.go +++ b/src/scene_server/admin_server/upgrader/y3.13.202410311500/pkg.go @@ -15,7 +15,7 @@ * to the current version of the project delivered to anyone in the future. */ -package y3_13_202402181900 +package y3_13_202410311500 import ( "context" @@ -26,17 +26,18 @@ import ( ) func init() { - upgrader.RegistUpgrader("y3.13.202402181900", upgrade) + upgrader.RegistUpgrader("y3.13.202410311500", upgrade) } func upgrade(ctx context.Context, db dal.RDB, conf *upgrader.Config) (err error) { - blog.Infof("start execute y3.13.202402181900") - if err = updateBizSetDescField(ctx, db); err != nil { - blog.Errorf("upgrade y3.13.202402181900 update biz set description field failed, err: %v", err) + blog.Infof("start execute y3.13.202410311500") + err = updateCloudVendor(ctx, db, conf) + if err != nil { + blog.Errorf("upgrade y3.13.202410311500 update cloud vendor failed, error: %v", err) return err } + blog.Infof("execute y3.13.202410311500, update cloud vendor success!") - blog.Infof("upgrade y3.13.202402181900 rename biz set description field success") return nil } diff --git a/src/scene_server/admin_server/upgrader/y3.13.202410311500/updateCloudVendor.go b/src/scene_server/admin_server/upgrader/y3.13.202410311500/updateCloudVendor.go new file mode 100644 index 0000000000..5e1656d4bc --- /dev/null +++ b/src/scene_server/admin_server/upgrader/y3.13.202410311500/updateCloudVendor.go @@ -0,0 +1,155 @@ +/* + * Tencent is pleased to support the open source community by making + * 蓝鲸智云 - 配置平台 (BlueKing - Configuration System) available. + * Copyright (C) 2017 THL A29 Limited, + * a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at http://opensource.org/licenses/MIT + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * We undertake not to change the open source license (MIT license) applicable + * to the current version of the project delivered to anyone in the future. + */ + +package y3_13_202410311500 + +import ( + "context" + "errors" + "strconv" + + "configcenter/src/common" + "configcenter/src/common/blog" + "configcenter/src/scene_server/admin_server/upgrader" + "configcenter/src/storage/dal" +) + +// attribute object attribute +type attribute struct { + ID int64 `json:"id" bson:"id"` + ObjectID string `json:"bk_obj_id" bson:"bk_obj_id"` + Option []enumOption `json:"option" bson:"option"` +} + +// enumOption enum option +type enumOption struct { + ID string `json:"id" bson:"id"` + Name string `json:"name" bson:"name"` + Type string `json:"type" bson:"type"` + IsDefault bool `json:"is_default" bson:"is_default"` +} + +func getEnumMap(vendors []string) map[string]string { + enumMap := make(map[string]string, len(vendors)) + for index, cloudVendor := range vendors { + enumMap[strconv.Itoa(index+1)] = cloudVendor + } + return enumMap +} + +func getAddEnumMap() map[string]enumOption { + return map[string]enumOption{ + "17": { + ID: "17", + Name: "腾讯自研云", + Type: "text", + IsDefault: false, + }, + "18": { + ID: "18", + Name: "Zenlayer", + Type: "text", + IsDefault: false, + }, + } +} + +var ( + oldCloudVendors = []string{"AWS", "腾讯云", "GCP", "Azure", "企业私有云", "SalesForce", "Oracle Cloud", "IBM Cloud", + "阿里云", "中国电信", "UCloud", "美团云", "金山云", "百度云", "华为云", "首都云"} + + newCloudVendors = []string{"亚马逊云", "腾讯云", "谷歌云", "微软云", "企业私有云", "SalesForce", "Oracle Cloud", "IBM Cloud", + "阿里云", "中国电信", "UCloud", "美团云", "金山云", "百度云", "华为云", "首都云", "腾讯自研云", "Zenlayer"} + + oldEnumMap = getEnumMap(oldCloudVendors) + + newOptionMap = getEnumMap(newCloudVendors) +) + +func updateCloudVendor(ctx context.Context, db dal.RDB, conf *upgrader.Config) error { + cond := map[string]interface{}{ + common.BKObjIDField: map[string]interface{}{ + common.BKDBIN: []string{common.BKInnerObjIDHost, common.BKInnerObjIDPlat}, + }, + common.BKPropertyIDField: common.BKCloudVendor, + common.BKPropertyTypeField: common.FieldTypeEnum, + } + + objAttrs := make([]attribute, 0) + err := db.Table(common.BKTableNameObjAttDes).Find(cond).All(ctx, &objAttrs) + if err != nil { + blog.Errorf("get cloud vendor field failed, err: %v", err) + return err + } + if len(objAttrs) != 2 { + blog.Errorf("get cloud vendor field failed, count cloud vendor field not equal 2, objAttrs: %v", objAttrs) + return errors.New("count cloud vendor field not equal 2") + } + + for _, attr := range objAttrs { + addEnumMap := getAddEnumMap() + for idx, currentEnum := range attr.Option { + id, err := strconv.ParseInt(currentEnum.ID, 10, 64) + if err != nil { + blog.Errorf("parse enum id to int failed, err: %v, enum: %v", err, currentEnum) + return errors.New("parse enum id to int failed") + } + if id > 18 { + continue + } + + if addEnum, exists := addEnumMap[currentEnum.ID]; exists { + if currentEnum.Name != addEnum.Name { + blog.Errorf("enum key %s already exists, enum: %v", currentEnum.ID, currentEnum) + return errors.New("enum key already exists") + } + delete(addEnumMap, currentEnum.ID) + continue + } + + if currentEnum.Name != oldEnumMap[currentEnum.ID] && currentEnum.Name != newOptionMap[currentEnum.ID] { + blog.Errorf("compare enum failed, currentEnum: %v", currentEnum) + return errors.New("compare enum failed") + } + attr.Option[idx] = enumOption{ + ID: currentEnum.ID, + Name: newOptionMap[currentEnum.ID], + Type: "text", + IsDefault: false, + } + } + + if len(addEnumMap) != 0 { + for _, enum := range addEnumMap { + attr.Option = append(attr.Option, enum) + } + } + + updateCond := map[string]interface{}{ + common.BKObjIDField: attr.ObjectID, + common.BKPropertyIDField: common.BKCloudVendor, + common.BKPropertyTypeField: common.FieldTypeEnum, + } + updateData := map[string]interface{}{common.BKOptionField: attr.Option} + if err := db.Table(common.BKTableNameObjAttDes).Update(ctx, updateCond, updateData); err != nil { + blog.Errorf("update cloud vendor attribute failed, err: %v, cond: %v, updateData: %v", err, cond, + updateData) + return err + } + } + return nil +} diff --git a/src/scene_server/event_server/sync/hostidentifier/common.go b/src/scene_server/event_server/sync/hostidentifier/common.go index b3fb49f977..2a2ee75300 100644 --- a/src/scene_server/event_server/sync/hostidentifier/common.go +++ b/src/scene_server/event_server/sync/hostidentifier/common.go @@ -32,9 +32,6 @@ import ( ) const ( - // maxSecondForSleep is the maximum number of seconds of sleep - maxSecondForSleep = 60 - // fileLimit 100 * 1024 字节 = 100KB fileLimit = 102400 ) @@ -47,9 +44,6 @@ func strMd5(str string) (retMd5 string) { // sleepForFail sleep due to failure func sleepForFail(failCount int) { - if failCount > maxSecondForSleep { - failCount = maxSecondForSleep - } time.Sleep(time.Duration(failCount) * time.Second) } diff --git a/src/scene_server/event_server/sync/hostidentifier/hostIdentifier.go b/src/scene_server/event_server/sync/hostidentifier/hostIdentifier.go index b0c1fca925..7e2d23c6bb 100644 --- a/src/scene_server/event_server/sync/hostidentifier/hostIdentifier.go +++ b/src/scene_server/event_server/sync/hostidentifier/hostIdentifier.go @@ -242,7 +242,7 @@ func (h *HostIdentifier) watchToSyncHostIdentifier(events []*IdentifierEvent, he }) } - resp, err := h.getAgentStatus(statusReqList, true, header, rid) + resp, err := h.getAgentStatus(statusReqList, header, rid) if err != nil { blog.Errorf("get agent status error, host: %v, err: %v, rid: %s", events, err, rid) return @@ -421,7 +421,7 @@ func (h *HostIdentifier) BatchSyncHostIdentifier(hosts []map[string]interface{}, }) } - resp, err := h.getAgentStatus(statusReqList, false, header, rid) + resp, err := h.getAgentStatus(statusReqList, header, rid) if err != nil { blog.Errorf("get agent status error, hostInfo: %v, err: %v, rid: %s", hosts, err, rid) return nil, err @@ -554,7 +554,7 @@ func (h *HostIdentifier) getV1OnStatusAgent(hosts []map[string]interface{}, stat return hostIDs, hostInfos, hostMap } -func (h *HostIdentifier) getAgentStatus(statusReqList []StatusReq, always bool, header http.Header, rid string) ( +func (h *HostIdentifier) getAgentStatus(statusReqList []StatusReq, header http.Header, rid string) ( map[string]string, error) { if len(statusReqList) == 0 { @@ -563,7 +563,7 @@ func (h *HostIdentifier) getAgentStatus(statusReqList []StatusReq, always bool, switch h.apiVersion { case types.V2: - result, err := h.getAgentStatusByV2Api(statusReqList, always, header) + result, err := h.getAgentStatusByV2Api(statusReqList, header) if err != nil { blog.Errorf("get host agent status error, err: %v, rid: %s", err, rid) return nil, err @@ -572,7 +572,7 @@ func (h *HostIdentifier) getAgentStatus(statusReqList []StatusReq, always bool, return result, nil case types.V1: - result, err := h.getAgentStatusByV1Api(statusReqList, always, rid) + result, err := h.getAgentStatusByV1Api(statusReqList, rid) if err != nil { blog.Errorf("get host agent status error, err: %v, rid: %s", err, rid) return nil, err @@ -584,7 +584,7 @@ func (h *HostIdentifier) getAgentStatus(statusReqList []StatusReq, always bool, return nil, errors.New("can not find api about get agent status") } -func (h *HostIdentifier) getAgentStatusByV2Api(statusReqList []StatusReq, always bool, header http.Header) ( +func (h *HostIdentifier) getAgentStatusByV2Api(statusReqList []StatusReq, header http.Header) ( map[string]string, error) { // build agentID request list @@ -613,7 +613,7 @@ func (h *HostIdentifier) getAgentStatusByV2Api(statusReqList []StatusReq, always failCount := 0 var err error var resp *gse.ListAgentStateResp - for always || failCount < retryTimes { + for failCount < retryTimes { resp, err = h.gseApiGWClient.ListAgentState(h.ctx, header, req) if err != nil { h.metric.getAgentStatusTotal.WithLabelValues("failed").Inc() @@ -628,14 +628,14 @@ func (h *HostIdentifier) getAgentStatusByV2Api(statusReqList []StatusReq, always break } - if !always && failCount >= retryTimes { + if failCount >= retryTimes { return nil, err } return statusMap, nil } -func (h *HostIdentifier) getAgentStatusByV1Api(statusReqList []StatusReq, always bool, rid string) (map[string]string, +func (h *HostIdentifier) getAgentStatusByV1Api(statusReqList []StatusReq, rid string) (map[string]string, error) { req := new(getstatus.AgentStatusRequest) @@ -648,7 +648,7 @@ func (h *HostIdentifier) getAgentStatusByV1Api(statusReqList []StatusReq, always failCount := 0 resp := new(getstatus.AgentStatusResponse) // 调用gse api server 查询agent状态 - for always || failCount < retryTimes { + for failCount < retryTimes { resp, err = h.gseApiServerClient.GetAgentStatus(context.Background(), req) if err != nil { blog.Errorf("get host agent status error, err: %v, rid: %s", err, rid) @@ -668,7 +668,7 @@ func (h *HostIdentifier) getAgentStatusByV1Api(statusReqList []StatusReq, always break } - if !always && failCount >= retryTimes { + if failCount >= retryTimes { return nil, errors.New("find agent status from apiServer error") } diff --git a/src/scene_server/event_server/sync/hostidentifier/task.go b/src/scene_server/event_server/sync/hostidentifier/task.go index 9b933e794c..2aabfd90f2 100644 --- a/src/scene_server/event_server/sync/hostidentifier/task.go +++ b/src/scene_server/event_server/sync/hostidentifier/task.go @@ -254,7 +254,7 @@ func (h *HostIdentifier) LaunchTaskForFailedHost() { } // 2、查询主机的agent状态 - resp, err := h.getAgentStatus(statusReq, false, header, rid) + resp, err := h.getAgentStatus(statusReq, header, rid) if err != nil { blog.Errorf("get agent status error, hostInfo: %v, err: %v, rid: %s", hostInfoArray, err, rid) continue @@ -396,13 +396,13 @@ func (h *HostIdentifier) pushFile(always bool, hostInfos []*HostInfo, taskInfo * var err error switch h.apiVersion { case types.V1: - taskID, err = h.pushFileByV1Api(always, taskInfo.V1Task, rid) + taskID, err = h.pushFileByV1Api(taskInfo.V1Task, rid) if err != nil { return nil, err } case types.V2: - taskID, err = h.pushFileByV2Api(always, taskInfo.V2Task, header, rid) + taskID, err = h.pushFileByV2Api(taskInfo.V2Task, header, rid) if err != nil { return nil, err } @@ -433,7 +433,7 @@ func (h *HostIdentifier) pushFile(always bool, hostInfos []*HostInfo, taskInfo * return task, nil } -func (h *HostIdentifier) pushFileByV2Api(always bool, task []*gse.Task, header http.Header, rid string) (string, +func (h *HostIdentifier) pushFileByV2Api(task []*gse.Task, header http.Header, rid string) (string, error) { if len(task) == 0 { @@ -450,10 +450,10 @@ func (h *HostIdentifier) pushFileByV2Api(always bool, task []*gse.Task, header h TimeoutSeconds: 1000, } - for always || failCount < retryTimes { + for failCount < retryTimes { resp, err = h.gseApiGWClient.AsyncPushFile(h.ctx, header, req) if err != nil { - h.metric.getAgentStatusTotal.WithLabelValues("failed").Inc() + h.metric.pushFileTotal.WithLabelValues("failed").Inc() failCount++ sleepForFail(failCount) continue @@ -461,14 +461,14 @@ func (h *HostIdentifier) pushFileByV2Api(always bool, task []*gse.Task, header h break } - if !always && failCount >= retryTimes { + if failCount >= retryTimes { return "", err } return resp.Data.Result.TaskID, nil } -func (h *HostIdentifier) pushFileByV1Api(always bool, task []*pushfile.API_FileInfoV2, rid string) (string, error) { +func (h *HostIdentifier) pushFileByV1Api(task []*pushfile.API_FileInfoV2, rid string) (string, error) { if len(task) == 0 { blog.Errorf("push file error, because the task is empty, rid: %s", rid) return "", errors.New("push file error, because the task is empty") @@ -478,7 +478,7 @@ func (h *HostIdentifier) pushFileByV1Api(always bool, task []*pushfile.API_FileI failCount := 0 resp := new(pushfile.API_CommRsp) - for always || failCount < retryTimes { + for failCount < retryTimes { resp, err = h.gseTaskServerClient.PushFileV2(context.Background(), task) if err != nil { blog.Errorf("push host identifier to gse error, err: %v, rid: %s", err, rid) @@ -498,7 +498,7 @@ func (h *HostIdentifier) pushFileByV1Api(always bool, task []*pushfile.API_FileI break } - if !always && failCount >= retryTimes { + if failCount >= retryTimes { return "", errors.New("push host identifier to gse taskServer error") } diff --git a/src/scene_server/host_server/logics/module.go b/src/scene_server/host_server/logics/module.go index 58c4e90631..2db125848b 100644 --- a/src/scene_server/host_server/logics/module.go +++ b/src/scene_server/host_server/logics/module.go @@ -364,7 +364,7 @@ func (lgc *Logics) AssignHostToApp(kit *rest.Kit, conf *metadata.DefaultModuleHo } if len(errHostID) > 0 { errHostIP := lgc.convertHostIDToHostIP(kit, errHostID) - blog.Errorf("assign host to app, notExistAppModuleHost error, has host not belong to resource directory module , input:%+v, rid:%s", conf, kit.Rid) + blog.Errorf("has host not belong to resource directory module, input: %+v, rid: %s", conf, kit.Rid) return nil, kit.CCError.Errorf(common.CCErrHostModuleConfigNotMatch, strings.Join(errHostIP, ",")) } diff --git a/src/source_controller/coreservice/core/hostapplyrule/plan.go b/src/source_controller/coreservice/core/hostapplyrule/plan.go index bc204bb8fa..02c9a8356f 100644 --- a/src/source_controller/coreservice/core/hostapplyrule/plan.go +++ b/src/source_controller/coreservice/core/hostapplyrule/plan.go @@ -32,9 +32,10 @@ import ( ) // GenerateApplyPlan 生成主机属性自动应用执行计划 -func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option metadata.HostApplyPlanOption) (metadata.HostApplyPlanResult, errors.CCErrorCoder) { - rid := kit.Rid +func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option metadata.HostApplyPlanOption) ( + metadata.HostApplyPlanResult, errors.CCErrorCoder) { + rid := kit.Rid result := metadata.HostApplyPlanResult{ Plans: make([]metadata.OneHostApplyPlan, 0), HostAttributes: make([]metadata.Attribute, 0), @@ -56,11 +57,10 @@ func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option met for _, item := range option.Rules { attributeIDs = append(attributeIDs, item.AttributeID) } - attributes, err := p.listHostAttributes(kit, bizID, attributeIDs...) - if err != nil { - blog.Errorf("GenerateApplyPlan failed, listHostAttributes failed, attributeIDs: %s, err: %s, rid: %s", - attributeIDs, err.Error(), rid) - return result, err + attributes, ccErr := p.listHostAttributes(kit, bizID, attributeIDs...) + if ccErr != nil { + blog.Errorf("listHostAttributes failed, ccErr: %v, attributeIDs: %v, rid: %s", ccErr, attributeIDs, rid) + return result, ccErr } fields := []string{common.BKHostIDField, common.BKHostInnerIPField, common.BKHostInnerIPv6Field, @@ -70,8 +70,9 @@ func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option met } hosts := make([]metadata.HostMapStr, 0) - if err := mongodb.Client().Table(common.BKTableNameBaseHost).Find(hostFilter).Fields(fields...).All(kit.Ctx, &hosts); err != nil { - blog.ErrorJSON("GenerateApplyPlan failed, list hosts failed, filter: %s, err: %s, rid: %s", hostFilter, err.Error(), rid) + err := mongodb.Client().Table(common.BKTableNameBaseHost).Find(hostFilter).Fields(fields...).All(kit.Ctx, &hosts) + if err != nil { + blog.Errorf("list hosts failed, err: %v, filter: %+v, rid: %s", err, hostFilter, rid) return result, kit.CCError.CCError(common.CCErrCommDBSelectFailed) } @@ -84,7 +85,7 @@ func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option met CloudID int64 `mapstructure:"bk_cloud_id"` }{} if err := mapstruct.Decode2Struct(item, &host); err != nil { - blog.ErrorJSON("GenerateApplyPlan failed, parse hostID failed, host: %s, err: %s, rid: %s", item, err.Error(), rid) + blog.Errorf("parse hostID failed, err: %v, host: %v, rid: %s", err, item, rid) return result, kit.CCError.CCError(common.CCErrCommParseDBFailed) } hostMap[host.HostID] = item @@ -102,8 +103,8 @@ func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option met }, } if err := mongodb.Client().Table(common.BKTableNameBasePlat).Find(cloudFilter).All(kit.Ctx, &clouds); err != nil { - blog.ErrorJSON("GenerateApplyPlan failed, read cloud failed, filter: %s, err: %s, rid: %s", - cloudFilter, err.Error(), rid) + blog.Errorf("list clouds instances failed, read cloud failed, err: %v, filter: %+v, rid: %s", err, cloudFilter, + rid) return result, kit.CCError.CCError(common.CCErrCommDBSelectFailed) } cloudMap := make(map[int64]metadata.CloudInst) @@ -128,10 +129,12 @@ func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option met hostApplyPlans = append(hostApplyPlans, hostApplyPlan) continue } - hostApplyPlan, err = p.generateOneHostApplyPlan(kit, hostModule.HostID, host, hostModule.ModuleIDs, option.Rules, attributes, option.ConflictResolvers) - if err != nil { - blog.ErrorJSON("generateOneHostApplyPlan failed, host: %s, moduleIDs: %s, rules: %s, err: %s, rid: %s", host, hostModule.ModuleIDs, option.Rules, err.Error(), rid) - return result, err + hostApplyPlan, ccErr = p.generateOneHostApplyPlan(kit, hostModule.HostID, host, hostModule.ModuleIDs, + option.Rules, attributes, option.ConflictResolvers) + if ccErr != nil { + blog.Errorf("generateOneHostApplyPlan failed, ccErr: %v, host: %v, moduleIDs: %v, rules: %v, rid: %s", + ccErr, host, hostModule.ModuleIDs, option.Rules, rid) + return result, ccErr } if hostApplyPlan.UnresolvedConflictCount > 0 { unresolvedConflictCount += 1 @@ -165,12 +168,74 @@ func (p *hostApplyRule) GenerateApplyPlan(kit *rest.Kit, bizID int64, option met return result, nil } +func isOrganizationEqual(expectValue interface{}, propertyValue interface{}) (bool, errors.CCErrorCoder) { + eValue, ok := expectValue.(primitive.A) + if !ok { + blog.Errorf("expect value type is not primitive.A, type: %T, value: %v", expectValue, expectValue) + return false, errors.New(common.CCErrCommUnexpectedFieldType, "expect value type error") + } + pValue, ccErr := metadata.CheckInterfaceSliceType(propertyValue) + if ccErr != nil { + blog.Errorf("propertyValue value type is not primitive.A or []interface{}, type: %T, value: %v", propertyValue, + propertyValue) + return false, ccErr + } + + expectValueList := make([]int, 0) + for _, eValue := range []interface{}(eValue) { + value, err := util.GetIntByInterface(eValue) + if err != nil { + return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) + } + expectValueList = append(expectValueList, value) + } + + ruleValueList := make([]int, 0) + for _, rValue := range pValue { + value, err := util.GetIntByInterface(rValue) + if err != nil { + return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) + } + ruleValueList = append(ruleValueList, value) + } + + return cmp.Equal(expectValueList, ruleValueList), nil +} + +func isEnumMultiEqual(expectValue interface{}, propertyValue interface{}) (bool, errors.CCErrorCoder) { + eValue, ok := expectValue.(primitive.A) + if !ok { + blog.Errorf("expect value type is not primitive.A, type: %T, value: %v", expectValue, expectValue) + return false, errors.New(common.CCErrCommUnexpectedFieldType, "expect value type error") + } + + pValue, ccErr := metadata.CheckInterfaceSliceType(propertyValue) + if ccErr != nil { + blog.Errorf("propertyValue value type is not primitive.A or []interface{}, type: %T, value: %v", propertyValue, + propertyValue) + return false, ccErr + } + + expectValueList, err := util.SliceInterfaceToString(eValue) + if err != nil { + blog.Errorf("interface array transfer to string array falied, err: %v", err) + return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) + } + + ruleValueList, err := util.SliceInterfaceToString(pValue) + if err != nil { + blog.Errorf("interface array transfer to string array falied, err: %v", err) + return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) + } + + return cmp.Equal(expectValueList, ruleValueList), nil +} + // isRuleEqualOrNot : When the attribute type is "organization", the type obtained from the database is the database's // native primitive.A type. When converted to []interface{}, the type is int64, the type of propertyValue is // []interface{}, and the type of each element inside is json.Number, which needs to be unified before comparing. // The rest of the attribute types can be compared directly in non-organization scenarios. func isRuleEqualOrNot(pType string, expectValue interface{}, propertyValue interface{}) (bool, errors.CCErrorCoder) { - // in the transfer host scenario, the rule may be empty. if expectValue == nil { return false, nil @@ -180,33 +245,7 @@ func isRuleEqualOrNot(pType string, expectValue interface{}, propertyValue inter switch pType { case common.FieldTypeOrganization: - value, ok := expectValue.(primitive.A) - if !ok { - return false, errors.New(common.CCErrCommUnexpectedFieldType, "expect value type error") - } - if _, ok := propertyValue.([]interface{}); !ok { - return false, errors.New(common.CCErrCommUnexpectedFieldType, "property value type error") - } - - expectValueList := make([]int, 0) - for _, eValue := range []interface{}(value) { - value, err := util.GetIntByInterface(eValue) - if err != nil { - return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) - } - expectValueList = append(expectValueList, value) - } - - ruleValueList := make([]int, 0) - for _, rValue := range propertyValue.([]interface{}) { - value, err := util.GetIntByInterface(rValue) - if err != nil { - return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) - } - ruleValueList = append(ruleValueList, value) - } - - return cmp.Equal(expectValueList, ruleValueList), nil + return isOrganizationEqual(expectValue, propertyValue) // 当属性是int类型时,需要转为统一类型进行对比 case common.FieldTypeInt: @@ -220,7 +259,7 @@ func isRuleEqualOrNot(pType string, expectValue interface{}, propertyValue inter return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) } - // 当属性是int类型时,需要转为统一类型进行对比 + // 当属性是float类型时,需要转为统一类型进行对比 case common.FieldTypeFloat: propertyValue, err = util.GetFloat64ByInterface(propertyValue) if err != nil { @@ -243,6 +282,10 @@ func isRuleEqualOrNot(pType string, expectValue interface{}, propertyValue inter if err != nil { return false, errors.New(common.CCErrCommUnexpectedFieldType, err.Error()) } + + // 当属性是enummulti类型时,需要转为统一类型进行对比 + case common.FieldTypeEnumMulti: + return isEnumMultiEqual(expectValue, propertyValue) } return cmp.Equal(expectValue, propertyValue), nil diff --git a/src/ui/.eslintignore b/src/ui/.eslintignore index 4e13f3112f..8c9efda675 100644 --- a/src/ui/.eslintignore +++ b/src/ui/.eslintignore @@ -2,4 +2,5 @@ /config/ /dist/ /*.js -/src/assets/icon/bk-icon-cmdb/iconcool.js \ No newline at end of file +/src/assets/icon/bk-icon-cmdb/iconcool.js +/src/assets/icon/bk-icon-cmdb-colorful/iconcool.js \ No newline at end of file diff --git a/src/ui/src/api/custom-header.js b/src/ui/src/api/custom-header.js index 49625b4305..0c088a75b1 100644 --- a/src/ui/src/api/custom-header.js +++ b/src/ui/src/api/custom-header.js @@ -18,9 +18,9 @@ const randomString = (length, chars) => { return result } -export default { +export default () => ({ // opentelementry TraceID traceparent: `00-${randomString(32, TRACE_CHARS)}-${randomString(16, TRACE_CHARS)}-01`, // 请求ID 'X-Bkapi-Request-Id': `cc0000${xid.next()}` -} +}) diff --git a/src/ui/src/api/index.js b/src/ui/src/api/index.js index cd2df1448e..526ca9763f 100644 --- a/src/ui/src/api/index.js +++ b/src/ui/src/api/index.js @@ -31,9 +31,8 @@ const axiosInstance = Axios.create({ // axios实例拦截器 axiosInstance.interceptors.request.use( (config) => { - config.headers.common = { - ...config.headers.common, - ...customHeaders + for (const [key, value] of Object.entries(customHeaders())) { + config.headers[key] = value } return config }, diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.eot b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.eot new file mode 100644 index 0000000000..027253f48f Binary files /dev/null and b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.eot differ diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.svg b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.svg new file mode 100644 index 0000000000..48fc62b3f3 --- /dev/null +++ b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.svg @@ -0,0 +1,53 @@ + + + + + Created by font-carrier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.ttf b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.ttf new file mode 100644 index 0000000000..0967a33944 Binary files /dev/null and b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.ttf differ diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.woff b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.woff new file mode 100644 index 0000000000..2ade59987e Binary files /dev/null and b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/fonts/iconcool.woff differ diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/iconcool.js b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/iconcool.js new file mode 100644 index 0000000000..ab7383d4e1 --- /dev/null +++ b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/iconcool.js @@ -0,0 +1,10 @@ +!(function () { + const svgCode = '' + if (document.body) { + document.body.insertAdjacentHTML('afterbegin', svgCode) + } else { + document.addEventListener('DOMContentLoaded', function() { + document.body.insertAdjacentHTML('afterbegin', svgCode) + }) + } +})() diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/iconcool.json b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/iconcool.json new file mode 100644 index 0000000000..f4fdf61fec --- /dev/null +++ b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/iconcool.json @@ -0,0 +1 @@ +{"iconName":"bk-cmdb-colorful","icons":[{"name":"cc-cloud-vendor-ali","svgCode":"","codepoint":"\\e101"},{"name":"cc-cloud-vendor-aws","svgCode":"","codepoint":"\\e102"},{"name":"cc-cloud-vendor-tcloud","svgCode":"","codepoint":"\\e103"},{"name":"gengduo","svgCode":"","codepoint":"\\e109"},{"name":"cc-cloud-vendor-gcp","svgCode":"","codepoint":"\\e10a"},{"name":"cc-cloud-vendor-azure","svgCode":"","codepoint":"\\e10b"}]} \ No newline at end of file diff --git a/src/ui/src/assets/icon/bk-icon-cmdb-colorful/style.css b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/style.css new file mode 100644 index 0000000000..16289990e4 --- /dev/null +++ b/src/ui/src/assets/icon/bk-icon-cmdb-colorful/style.css @@ -0,0 +1,43 @@ +@font-face { + font-family: "bk-cmdb-colorful"; + src: url("fonts/iconcool.svg#iconcool") format("svg"), +url("fonts/iconcool.ttf") format("truetype"), +url("fonts/iconcool.woff") format("woff"), +url("fonts/iconcool.eot?#iefix") format("embedded-opentype"); + font-weight: normal; + font-style: normal; +} + +.bk-cmdb-colorful-icon { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'bk-cmdb-colorful' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + text-align: center; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-cc-cloud-vendor-ali:before { + content: "\e101"; +} +.icon-cc-cloud-vendor-aws:before { + content: "\e102"; +} +.icon-cc-cloud-vendor-tcloud:before { + content: "\e103"; +} +.icon-gengduo:before { + content: "\e109"; +} +.icon-cc-cloud-vendor-gcp:before { + content: "\e10a"; +} +.icon-cc-cloud-vendor-azure:before { + content: "\e10b"; +} diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.eot b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.eot index 03675cc9d6..2d0305d73e 100644 Binary files a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.eot and b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.eot differ diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.svg b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.svg index 0ddb6f7e2d..59b6b51133 100644 --- a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.svg +++ b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.svg @@ -758,15 +758,6 @@ - - - - - - - - - diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.ttf b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.ttf index ec34c1119a..884275637e 100644 Binary files a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.ttf and b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.ttf differ diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.woff b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.woff index 8875831222..c1b1260ec5 100644 Binary files a/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.woff and b/src/ui/src/assets/icon/bk-icon-cmdb/fonts/iconcool.woff differ diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.js b/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.js index 14e1109f2f..0f0828dfa0 100644 --- a/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.js +++ b/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.js @@ -1,5 +1,5 @@ !(function () { - var svgCode = '' + var svgCode = '' if (document.body) { document.body.insertAdjacentHTML('afterbegin', svgCode) } else { diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.json b/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.json index 72671e1dce..23f6780872 100644 --- a/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.json +++ b/src/ui/src/assets/icon/bk-icon-cmdb/iconcool.json @@ -1 +1 @@ -{"iconName":"bk-cmdb","icons":[{"name":"cc-refresh","svgCode":"\n\n\n\n\n\t\n\n\n","codepoint":"\\e3b9"},{"name":"cc-help","svgCode":"\n\n\n\n\n\n","codepoint":"\\e3eb"},{"name":"cc-remind","svgCode":"","codepoint":"\\e3b8"},{"name":"cc-selected","svgCode":"\n\n\n\n\n\n","codepoint":"\\e2b6"},{"name":"cc-jump-link","svgCode":"","codepoint":"\\e39a"},{"name":"cc-custom-field","svgCode":"","codepoint":"\\e2ad"},{"name":"cc-audit","svgCode":"","codepoint":"\\e2ae"},{"name":"cc-custom-query","svgCode":"","codepoint":"\\e2af"},{"name":"cc-service-template","svgCode":"","codepoint":"\\e2b0"},{"name":"cc-set-template","svgCode":"","codepoint":"\\e2b2"},{"name":"cc-statistics","svgCode":"","codepoint":"\\e2b1"},{"name":"cc-host-apply","svgCode":"","codepoint":"\\e2b4"},{"name":"cc-batch-update","svgCode":"","codepoint":"\\e2b5"},{"name":"cc-activemq","svgCode":"","codepoint":"\\e2b7"},{"name":"cc-add-line","svgCode":"","codepoint":"\\e2b8"},{"name":"cc-angle-right","svgCode":"","codepoint":"\\e2b9"},{"name":"cc-android","svgCode":"","codepoint":"\\e2bb"},{"name":"cc-apple","svgCode":"","codepoint":"\\e2bc"},{"name":"cc-angle-left","svgCode":"","codepoint":"\\e2ba"},{"name":"cc-architecture","svgCode":"","codepoint":"\\e2bd"},{"name":"cc-apache","svgCode":"","codepoint":"\\e2be"},{"name":"cc-arrow","svgCode":"","codepoint":"\\e2bf"},{"name":"cc-arrow-down","svgCode":"","codepoint":"\\e2c0"},{"name":"cc-attribute","svgCode":"","codepoint":"\\e2c1"},{"name":"cc-backstage","svgCode":"","codepoint":"\\e2c2"},{"name":"cc-backward","svgCode":"","codepoint":"\\e2c3"},{"name":"cc-balance","svgCode":"","codepoint":"\\e2c4"},{"name":"cc-basic-resource","svgCode":"","codepoint":"\\e2c5"},{"name":"cc-branch-company","svgCode":"","codepoint":"\\e2c6"},{"name":"cc-branch-shop","svgCode":"","codepoint":"\\e2c7"},{"name":"cc-broom","svgCode":"","codepoint":"\\e2c8"},{"name":"cc-business","svgCode":"","codepoint":"\\e2c9"},{"name":"cc-cabinet","svgCode":"","codepoint":"\\e2ca"},{"name":"cc-camera","svgCode":"","codepoint":"\\e2cb"},{"name":"cc-cbd","svgCode":"","codepoint":"\\e2cc"},{"name":"cc-certificate","svgCode":"","codepoint":"\\e2cd"},{"name":"cc-classroom","svgCode":"","codepoint":"\\e2ce"},{"name":"cc-clear","svgCode":"","codepoint":"\\e2cf"},{"name":"cc-cloud-host","svgCode":"","codepoint":"\\e2d0"},{"name":"cc-cloud-to-uploa","svgCode":"","codepoint":"\\e2d1"},{"name":"cc-collect","svgCode":"","codepoint":"\\e2d2"},{"name":"cc-collection","svgCode":"","codepoint":"\\e2d3"},{"name":"cc-columnar","svgCode":"","codepoint":"\\e2d4"},{"name":"cc-compact","svgCode":"","codepoint":"\\e2d6"},{"name":"cc-company","svgCode":"","codepoint":"\\e2d5"},{"name":"cc-copy","svgCode":"","codepoint":"\\e2d7"},{"name":"cc-cpu","svgCode":"","codepoint":"\\e2d8"},{"name":"cc-create-business","svgCode":"","codepoint":"\\e2d9"},{"name":"cc-cube","svgCode":"","codepoint":"\\e2da"},{"name":"cc-cube-entity","svgCode":"","codepoint":"\\e2dc"},{"name":"cc-curve","svgCode":"","codepoint":"\\e2db"},{"name":"cc-database","svgCode":"","codepoint":"\\e2dd"},{"name":"cc-db2","svgCode":"","codepoint":"\\e2e2"},{"name":"cc-default","svgCode":"","codepoint":"\\e2de"},{"name":"cc-default-class","svgCode":"","codepoint":"\\e2df"},{"name":"cc-del","svgCode":"","codepoint":"\\e2e0"},{"name":"cc-delete","svgCode":"","codepoint":"\\e2e1"},{"name":"cc-department","svgCode":"","codepoint":"\\e2e3"},{"name":"cc-derivation","svgCode":"","codepoint":"\\e2e4"},{"name":"cc-details-copy","svgCode":"","codepoint":"\\e2e6"},{"name":"cc-developer-user","svgCode":"","codepoint":"\\e2e5"},{"name":"cc-directory","svgCode":"","codepoint":"\\e2e7"},{"name":"cc-disk","svgCode":"","codepoint":"\\e2e8"},{"name":"cc-domain","svgCode":"","codepoint":"\\e2e9"},{"name":"cc-edit","svgCode":"","codepoint":"\\e2ea"},{"name":"cc-elastic-search","svgCode":"","codepoint":"\\e2ec"},{"name":"cc-empty","svgCode":"","codepoint":"\\e2ed"},{"name":"cc-engine-room","svgCode":"","codepoint":"\\e2ee"},{"name":"cc-equipment","svgCode":"","codepoint":"\\e2ef"},{"name":"cc-exclamation-tips","svgCode":"","codepoint":"\\e2f0"},{"name":"cc-factory","svgCode":"","codepoint":"\\e2f1"},{"name":"cc-failure","svgCode":"","codepoint":"\\e2f2"},{"name":"cc-firewall","svgCode":"","codepoint":"\\e2f3"},{"name":"cc-fit","svgCode":"","codepoint":"\\e2f4"},{"name":"cc-forward","svgCode":"","codepoint":"\\e2f5"},{"name":"cc-free-pool","svgCode":"","codepoint":"\\e2f6"},{"name":"cc-fullscreen","svgCode":"","codepoint":"\\e2f7"},{"name":"cc-fullscreen-outlined","svgCode":"","codepoint":"\\e2f8"},{"name":"cc-fullscreen-outlined-reset","svgCode":"","codepoint":"\\e2f9"},{"name":"cc-funnel","svgCode":"","codepoint":"\\e2fb"},{"name":"cc-goback","svgCode":"","codepoint":"\\e2fa"},{"name":"cc-group","svgCode":"","codepoint":"\\e2fc"},{"name":"cc-hardware","svgCode":"","codepoint":"\\e2fd"},{"name":"cc-headoffice","svgCode":"","codepoint":"\\e2fe"},{"name":"cc-hide","svgCode":"","codepoint":"\\e300"},{"name":"cc-history","svgCode":"","codepoint":"\\e2ff"},{"name":"cc-history2","svgCode":"","codepoint":"\\e301"},{"name":"cc-home","svgCode":"","codepoint":"\\e302"},{"name":"cc-host","svgCode":"","codepoint":"\\e304"},{"name":"cc-host-breakdown","svgCode":"","codepoint":"\\e303"},{"name":"cc-host-free-pool","svgCode":"","codepoint":"\\e305"},{"name":"cc-icon-city","svgCode":"","codepoint":"\\e306"},{"name":"cc-idc","svgCode":"","codepoint":"\\e307"},{"name":"cc-idle-pool","svgCode":"","codepoint":"\\e308"},{"name":"cc-iis","svgCode":"","codepoint":"\\e309"},{"name":"cc-import","svgCode":"","codepoint":"\\e30a"},{"name":"cc-influxdb","svgCode":"","codepoint":"\\e30b"},{"name":"cc-information","svgCode":"","codepoint":"\\e30c"},{"name":"cc-instance-path","svgCode":"","codepoint":"\\e30d"},{"name":"cc-instance-total","svgCode":"","codepoint":"\\e30e"},{"name":"cc-international","svgCode":"","codepoint":"\\e30f"},{"name":"cc-ip","svgCode":"","codepoint":"\\e310"},{"name":"cc-kafka","svgCode":"","codepoint":"\\e312"},{"name":"cc-key","svgCode":"","codepoint":"\\e311"},{"name":"cc-label","svgCode":"","codepoint":"\\e313"},{"name":"cc-lang","svgCode":"","codepoint":"\\e314"},{"name":"cc-line","svgCode":"","codepoint":"\\e315"},{"name":"cc-link","svgCode":"","codepoint":"\\e316"},{"name":"cc-linux","svgCode":"","codepoint":"\\e317"},{"name":"cc-list","svgCode":"","codepoint":"\\e318"},{"name":"cc-loading","svgCode":"","codepoint":"\\e319"},{"name":"cc-lock","svgCode":"","codepoint":"\\e31a"},{"name":"cc-log","svgCode":"","codepoint":"\\e31b"},{"name":"cc-log-02","svgCode":"","codepoint":"\\e31c"},{"name":"cc-logout","svgCode":"","codepoint":"\\e31d"},{"name":"cc-machine","svgCode":"","codepoint":"\\e31e"},{"name":"cc-mail-server","svgCode":"","codepoint":"\\e31f"},{"name":"cc-mainboard","svgCode":"","codepoint":"\\e320"},{"name":"cc-map","svgCode":"","codepoint":"\\e321"},{"name":"cc-market","svgCode":"","codepoint":"\\e323"},{"name":"cc-memory","svgCode":"","codepoint":"\\e322"},{"name":"cc-middleware","svgCode":"","codepoint":"\\e324"},{"name":"cc-minicomputer","svgCode":"","codepoint":"\\e325"},{"name":"cc-model","svgCode":"","codepoint":"\\e326"},{"name":"cc-model-total","svgCode":"","codepoint":"\\e327"},{"name":"cc-module","svgCode":"","codepoint":"\\e328"},{"name":"cc-mongodb","svgCode":"","codepoint":"\\e329"},{"name":"cc-mysql","svgCode":"","codepoint":"\\e32a"},{"name":"cc-nav-advanced-features","svgCode":"","codepoint":"\\e32b"},{"name":"cc-nav-associated","svgCode":"","codepoint":"\\e32c"},{"name":"cc-nav-audit","svgCode":"","codepoint":"\\e32d"},{"name":"cc-nav-audit-02","svgCode":"","codepoint":"\\e32e"},{"name":"cc-nav-authority","svgCode":"","codepoint":"\\e32f"},{"name":"cc-nav-auto-discovery","svgCode":"","codepoint":"\\e330"},{"name":"cc-nav-business-level","svgCode":"","codepoint":"\\e331"},{"name":"cc-nav-collection","svgCode":"","codepoint":"\\e332"},{"name":"cc-nav-detective","svgCode":"","codepoint":"\\e333"},{"name":"cc-nav-free-machine","svgCode":"","codepoint":"\\e334"},{"name":"cc-nav-model","svgCode":"","codepoint":"\\e335"},{"name":"cc-nav-model-02","svgCode":"","codepoint":"\\e336"},{"name":"cc-nav-model-topo","svgCode":"","codepoint":"\\e337"},{"name":"cc-nav-resource","svgCode":"","codepoint":"\\e33b"},{"name":"cc-nav-service-topo","svgCode":"","codepoint":"\\e338"},{"name":"cc-nav-stick","svgCode":"","codepoint":"\\e339"},{"name":"cc-nav-subscription","svgCode":"","codepoint":"\\e33c"},{"name":"cc-nav-toggle","svgCode":"","codepoint":"\\e33a"},{"name":"cc-net-port","svgCode":"","codepoint":"\\e33d"},{"name":"cc-network-card","svgCode":"","codepoint":"\\e33e"},{"name":"cc-network-equipment","svgCode":"","codepoint":"\\e340"},{"name":"cc-network-manage","svgCode":"","codepoint":"\\e33f"},{"name":"cc-networks","svgCode":"","codepoint":"\\e342"},{"name":"cc-network-segment","svgCode":"","codepoint":"\\e341"},{"name":"cc-nginx","svgCode":"","codepoint":"\\e343"},{"name":"cc-no-authority","svgCode":"","codepoint":"\\e344"},{"name":"cc-node","svgCode":"","codepoint":"\\e346"},{"name":"cc-not-allowed","svgCode":"","codepoint":"\\e345"},{"name":"cc-operator","svgCode":"","codepoint":"\\e347"},{"name":"cc-oracle","svgCode":"","codepoint":"\\e348"},{"name":"cc-organization","svgCode":"","codepoint":"\\e349"},{"name":"cc-other","svgCode":"","codepoint":"\\e34b"},{"name":"cc-pie-chart","svgCode":"","codepoint":"\\e34a"},{"name":"cc-pin","svgCode":"","codepoint":"\\e34c"},{"name":"cc-plus","svgCode":"","codepoint":"\\e34d"},{"name":"cc-plus-circle","svgCode":"","codepoint":"\\e34e"},{"name":"cc-port","svgCode":"","codepoint":"\\e34f"},{"name":"cc-postgresql","svgCode":"","codepoint":"\\e350"},{"name":"cc-printer","svgCode":"","codepoint":"\\e351"},{"name":"cc-process","svgCode":"","codepoint":"\\e352"},{"name":"cc-program","svgCode":"","codepoint":"\\e353"},{"name":"cc-progress","svgCode":"","codepoint":"\\e354"},{"name":"cc-project","svgCode":"","codepoint":"\\e355"},{"name":"cc-push-configuration","svgCode":"","codepoint":"\\e357"},{"name":"cc-push-history","svgCode":"","codepoint":"\\e356"},{"name":"cc-question","svgCode":"","codepoint":"\\e358"},{"name":"cc-record","svgCode":"","codepoint":"\\e359"},{"name":"cc-rect-add","svgCode":"","codepoint":"\\e35a"},{"name":"cc-rect-sub","svgCode":"","codepoint":"\\e35b"},{"name":"cc-recycle","svgCode":"","codepoint":"\\e35c"},{"name":"cc-redis","svgCode":"","codepoint":"\\e35d"},{"name":"cc-repeater","svgCode":"","codepoint":"\\e35e"},{"name":"cc-report","svgCode":"","codepoint":"\\e35f"},{"name":"cc-required","svgCode":"","codepoint":"\\e360"},{"name":"cc-resize-full","svgCode":"","codepoint":"\\e361"},{"name":"cc-resize-small","svgCode":"","codepoint":"\\e362"},{"name":"cc-resource","svgCode":"","codepoint":"\\e363"},{"name":"cc-resources","svgCode":"","codepoint":"\\e364"},{"name":"cc-round-plus","svgCode":"","codepoint":"\\e365"},{"name":"cc-router","svgCode":"","codepoint":"\\e366"},{"name":"cc-security","svgCode":"","codepoint":"\\e367"},{"name":"cc-security2","svgCode":"","codepoint":"\\e368"},{"name":"cc-senior","svgCode":"","codepoint":"\\e369"},{"name":"cc-server","svgCode":"","codepoint":"\\e36a"},{"name":"cc-service","svgCode":"","codepoint":"\\e36b"},{"name":"cc-set","svgCode":"","codepoint":"\\e36c"},{"name":"cc-setting","svgCode":"","codepoint":"\\e36d"},{"name":"cc-share","svgCode":"","codepoint":"\\e36e"},{"name":"cc-shift","svgCode":"","codepoint":"\\e36f"},{"name":"cc-show","svgCode":"","codepoint":"\\e370"},{"name":"cc-skin","svgCode":"","codepoint":"\\e371"},{"name":"cc-skip","svgCode":"","codepoint":"\\e372"},{"name":"cc-sort","svgCode":"","codepoint":"\\e373"},{"name":"cc-sqlite","svgCode":"","codepoint":"\\e374"},{"name":"cc-sql-server","svgCode":"","codepoint":"\\e375"},{"name":"cc-square","svgCode":"","codepoint":"\\e376"},{"name":"cc-star","svgCode":"","codepoint":"\\e377"},{"name":"cc-statement","svgCode":"","codepoint":"\\e378"},{"name":"cc-stick","svgCode":"","codepoint":"\\e379"},{"name":"cc-storage","svgCode":"","codepoint":"\\e37a"},{"name":"cc-subnet","svgCode":"","codepoint":"\\e37b"},{"name":"cc-switch2","svgCode":"","codepoint":"\\e37c"},{"name":"cc-syncing","svgCode":"","codepoint":"\\e37d"},{"name":"cc-template-management","svgCode":"","codepoint":"\\e37e"},{"name":"cc-thumbtack","svgCode":"","codepoint":"\\e37f"},{"name":"cc-tips","svgCode":"","codepoint":"\\e380"},{"name":"cc-tips-close","svgCode":"","codepoint":"\\e381"},{"name":"cc-tomcat","svgCode":"","codepoint":"\\e382"},{"name":"cc-tree","svgCode":"","codepoint":"\\e383"},{"name":"cc-tree-triangle","svgCode":"","codepoint":"\\e384"},{"name":"cc-triangle","svgCode":"","codepoint":"\\e385"},{"name":"cc-triangle-sider","svgCode":"","codepoint":"\\e386"},{"name":"cc-unix","svgCode":"","codepoint":"\\e387"},{"name":"cc-updating","svgCode":"","codepoint":"\\e388"},{"name":"cc-ups","svgCode":"","codepoint":"\\e389"},{"name":"cc-user","svgCode":"","codepoint":"\\e38a"},{"name":"cc-virtual","svgCode":"","codepoint":"\\e38b"},{"name":"cc-vmware","svgCode":"","codepoint":"\\e38c"},{"name":"cc-vsphere","svgCode":"","codepoint":"\\e38d"},{"name":"cc-weblogic","svgCode":"","codepoint":"\\e38e"},{"name":"cc-win","svgCode":"","codepoint":"\\e38f"},{"name":"cc-win7","svgCode":"","codepoint":"\\e390"},{"name":"cc-wireless","svgCode":"","codepoint":"\\e391"},{"name":"cc-zoom-in","svgCode":"","codepoint":"\\e393"},{"name":"cc-zoom-out","svgCode":"","codepoint":"\\e392"},{"name":"cc-menu","svgCode":"","codepoint":"\\e394"},{"name":"cc-order","svgCode":"","codepoint":"\\e395"},{"name":"icon-angle-double-left","svgCode":"","codepoint":"\\e396"},{"name":"icon-angle-double-right","svgCode":"","codepoint":"\\e397"},{"name":"cc-sort-down","svgCode":"","codepoint":"\\e398"},{"name":"cc-sort-up","svgCode":"","codepoint":"\\e399"},{"name":"cc-cloud-account","svgCode":"","codepoint":"\\e39c"},{"name":"cc-cloud-discover","svgCode":"","codepoint":"\\e39b"},{"name":"cc-download","svgCode":"","codepoint":"\\e3a1"},{"name":"cc-global","svgCode":"","codepoint":"\\e39d"},{"name":"cc-cloud-tencent","svgCode":"","codepoint":"\\e39e"},{"name":"cc-cloud-aws","svgCode":"","codepoint":"\\e39f"},{"name":"cc-cloud-ali","svgCode":"","codepoint":"\\e3a0"},{"name":"cc-business-set","svgCode":"","codepoint":"\\e3a2"},{"name":"summary-fill","svgCode":"","codepoint":"\\e3cb"},{"name":"cc-lock-fill","svgCode":"","codepoint":"\\e3aa"},{"name":"cc-edit-shape","svgCode":"","codepoint":"\\e3a3"},{"name":"cc-excel","svgCode":"","codepoint":"\\e3b7"},{"name":"cc-folder","svgCode":"","codepoint":"\\e3a4"},{"name":"cc-cancel-sticky","svgCode":"","codepoint":"\\e3a5"},{"name":"cc-sticky","svgCode":"","codepoint":"\\e3a6"},{"name":"cc-double-column","svgCode":"","codepoint":"\\e3a8"},{"name":"cc-single-column","svgCode":"","codepoint":"\\e3a7"},{"name":"cc-lock-line","svgCode":"","codepoint":"\\e3a9"},{"name":"copy","svgCode":"","codepoint":"\\e3ea"},{"name":"finger-line","svgCode":"","codepoint":"\\e3ab"},{"name":"cc-edit-bordered","svgCode":"","codepoint":"\\e3ac"},{"name":"cc-edit-bordered-disable","svgCode":"","codepoint":"\\e3ad"},{"name":"cc-set-permission","svgCode":"","codepoint":"\\e3af"},{"name":"json","svgCode":"","codepoint":"\\e3b2"},{"name":"cc-port-fill","svgCode":"","codepoint":"\\e3b0"},{"name":"cc-field-fill","svgCode":"","codepoint":"\\e3b1"},{"name":"cc-script-logo","svgCode":"","codepoint":"\\e3b6"},{"name":"cc-field-time","svgCode":"","codepoint":"\\e3df"},{"name":"cc-field-date","svgCode":"","codepoint":"\\e3e0"},{"name":"cc-dot-more","svgCode":"","codepoint":"\\e3e4"},{"name":"cc-unlock-fill","svgCode":"","codepoint":"\\e3bb"},{"name":"cc-model-module","svgCode":"","codepoint":"\\e3c0"},{"name":"cc-model-biz","svgCode":"","codepoint":"\\e3be"},{"name":"cc-model-host","svgCode":"","codepoint":"\\e3bc"},{"name":"cc-pod","svgCode":"","codepoint":"\\e3c2"},{"name":"cc-model-workload","svgCode":"","codepoint":"\\e3bf"},{"name":"cc-namespace","svgCode":"","codepoint":"\\e3c8"},{"name":"cc-container-node","svgCode":"","codepoint":"\\e3c1"},{"name":"cc-container","svgCode":"","codepoint":"\\e3c3"},{"name":"cc-chart-new","svgCode":"","codepoint":"\\e3c5"},{"name":"cc-log-new","svgCode":"","codepoint":"\\e3c7"},{"name":"cc-platlink","svgCode":"","codepoint":"\\e3c4"},{"name":"cc-location","svgCode":"","codepoint":"\\e3c6"},{"name":"cc-open-eye","svgCode":"","codepoint":"\\e3c9"},{"name":"cc-close-eye","svgCode":"","codepoint":"\\e3ca"},{"name":"cc-pod-folder","svgCode":"","codepoint":"\\e3d2"},{"name":"cc-field-singlechar","svgCode":"","codepoint":"\\e3d3"},{"name":"cc-model-host2","svgCode":"","codepoint":"\\e3d4"},{"name":"cc-field-int","svgCode":"","codepoint":"\\e3d8"},{"name":"cc-field-float","svgCode":"","codepoint":"\\e3d5"},{"name":"cc-field-enum","svgCode":"","codepoint":"\\e3d6"},{"name":"cc-field-longchar","svgCode":"","codepoint":"\\e3d9"},{"name":"cc-field-organization","svgCode":"","codepoint":"\\e3d7"},{"name":"cc-field-objuser","svgCode":"","codepoint":"\\e3db"},{"name":"cc-field-bool","svgCode":"","codepoint":"\\e3da"},{"name":"cc-field-timezone","svgCode":"","codepoint":"\\e3dc"},{"name":"zonghe","svgCode":"","codepoint":"\\e3dd"},{"name":"cc-table","svgCode":"","codepoint":"\\e3de"},{"name":"cc-field-enummulti","svgCode":"","codepoint":"\\e3e1"},{"name":"cc-field-list","svgCode":"","codepoint":"\\e3e2"},{"name":"cc-unbind","svgCode":"","codepoint":"\\e3e3"},{"name":"cc-menu-field-template","svgCode":"","codepoint":"\\e3e5"},{"name":"cc-field-innertable","svgCode":"","codepoint":"\\e3e7"},{"name":"cc-field-enumquote","svgCode":"","codepoint":"\\e3e8"},{"name":"cc-field-foreignkey","svgCode":"","codepoint":"\\e3e9"}]} \ No newline at end of file +{"iconName":"bk-cmdb","icons":[{"name":"cc-refresh","svgCode":"\n\n\n\n\n\t\n\n\n","codepoint":"\\e3b9"},{"name":"cc-help","svgCode":"\n\n\n\n\n\n","codepoint":"\\e3eb"},{"name":"cc-remind","svgCode":"","codepoint":"\\e3b8"},{"name":"cc-selected","svgCode":"\n\n\n\n\n\n","codepoint":"\\e2b6"},{"name":"cc-jump-link","svgCode":"","codepoint":"\\e39a"},{"name":"cc-custom-field","svgCode":"","codepoint":"\\e2ad"},{"name":"cc-audit","svgCode":"","codepoint":"\\e2ae"},{"name":"cc-custom-query","svgCode":"","codepoint":"\\e2af"},{"name":"cc-service-template","svgCode":"","codepoint":"\\e2b0"},{"name":"cc-set-template","svgCode":"","codepoint":"\\e2b2"},{"name":"cc-statistics","svgCode":"","codepoint":"\\e2b1"},{"name":"cc-host-apply","svgCode":"","codepoint":"\\e2b4"},{"name":"cc-batch-update","svgCode":"","codepoint":"\\e2b5"},{"name":"cc-activemq","svgCode":"","codepoint":"\\e2b7"},{"name":"cc-add-line","svgCode":"","codepoint":"\\e2b8"},{"name":"cc-angle-right","svgCode":"","codepoint":"\\e2b9"},{"name":"cc-android","svgCode":"","codepoint":"\\e2bb"},{"name":"cc-apple","svgCode":"","codepoint":"\\e2bc"},{"name":"cc-angle-left","svgCode":"","codepoint":"\\e2ba"},{"name":"cc-architecture","svgCode":"","codepoint":"\\e2bd"},{"name":"cc-apache","svgCode":"","codepoint":"\\e2be"},{"name":"cc-arrow","svgCode":"","codepoint":"\\e2bf"},{"name":"cc-arrow-down","svgCode":"","codepoint":"\\e2c0"},{"name":"cc-attribute","svgCode":"","codepoint":"\\e2c1"},{"name":"cc-backstage","svgCode":"","codepoint":"\\e2c2"},{"name":"cc-backward","svgCode":"","codepoint":"\\e2c3"},{"name":"cc-balance","svgCode":"","codepoint":"\\e2c4"},{"name":"cc-basic-resource","svgCode":"","codepoint":"\\e2c5"},{"name":"cc-branch-company","svgCode":"","codepoint":"\\e2c6"},{"name":"cc-branch-shop","svgCode":"","codepoint":"\\e2c7"},{"name":"cc-broom","svgCode":"","codepoint":"\\e2c8"},{"name":"cc-business","svgCode":"","codepoint":"\\e2c9"},{"name":"cc-cabinet","svgCode":"","codepoint":"\\e2ca"},{"name":"cc-camera","svgCode":"","codepoint":"\\e2cb"},{"name":"cc-cbd","svgCode":"","codepoint":"\\e2cc"},{"name":"cc-certificate","svgCode":"","codepoint":"\\e2cd"},{"name":"cc-classroom","svgCode":"","codepoint":"\\e2ce"},{"name":"cc-clear","svgCode":"","codepoint":"\\e2cf"},{"name":"cc-cloud-host","svgCode":"","codepoint":"\\e2d0"},{"name":"cc-cloud-to-uploa","svgCode":"","codepoint":"\\e2d1"},{"name":"cc-collect","svgCode":"","codepoint":"\\e2d2"},{"name":"cc-collection","svgCode":"","codepoint":"\\e2d3"},{"name":"cc-columnar","svgCode":"","codepoint":"\\e2d4"},{"name":"cc-compact","svgCode":"","codepoint":"\\e2d6"},{"name":"cc-company","svgCode":"","codepoint":"\\e2d5"},{"name":"cc-copy","svgCode":"","codepoint":"\\e2d7"},{"name":"cc-cpu","svgCode":"","codepoint":"\\e2d8"},{"name":"cc-create-business","svgCode":"","codepoint":"\\e2d9"},{"name":"cc-cube","svgCode":"","codepoint":"\\e2da"},{"name":"cc-cube-entity","svgCode":"","codepoint":"\\e2dc"},{"name":"cc-curve","svgCode":"","codepoint":"\\e2db"},{"name":"cc-database","svgCode":"","codepoint":"\\e2dd"},{"name":"cc-db2","svgCode":"","codepoint":"\\e2e2"},{"name":"cc-default","svgCode":"","codepoint":"\\e2de"},{"name":"cc-default-class","svgCode":"","codepoint":"\\e2df"},{"name":"cc-del","svgCode":"","codepoint":"\\e2e0"},{"name":"cc-delete","svgCode":"","codepoint":"\\e2e1"},{"name":"cc-department","svgCode":"","codepoint":"\\e2e3"},{"name":"cc-derivation","svgCode":"","codepoint":"\\e2e4"},{"name":"cc-details-copy","svgCode":"","codepoint":"\\e2e6"},{"name":"cc-developer-user","svgCode":"","codepoint":"\\e2e5"},{"name":"cc-directory","svgCode":"","codepoint":"\\e2e7"},{"name":"cc-disk","svgCode":"","codepoint":"\\e2e8"},{"name":"cc-domain","svgCode":"","codepoint":"\\e2e9"},{"name":"cc-edit","svgCode":"","codepoint":"\\e2ea"},{"name":"cc-elastic-search","svgCode":"","codepoint":"\\e2ec"},{"name":"cc-empty","svgCode":"","codepoint":"\\e2ed"},{"name":"cc-engine-room","svgCode":"","codepoint":"\\e2ee"},{"name":"cc-equipment","svgCode":"","codepoint":"\\e2ef"},{"name":"cc-exclamation-tips","svgCode":"","codepoint":"\\e2f0"},{"name":"cc-factory","svgCode":"","codepoint":"\\e2f1"},{"name":"cc-failure","svgCode":"","codepoint":"\\e2f2"},{"name":"cc-firewall","svgCode":"","codepoint":"\\e2f3"},{"name":"cc-fit","svgCode":"","codepoint":"\\e2f4"},{"name":"cc-forward","svgCode":"","codepoint":"\\e2f5"},{"name":"cc-free-pool","svgCode":"","codepoint":"\\e2f6"},{"name":"cc-fullscreen","svgCode":"","codepoint":"\\e2f7"},{"name":"cc-fullscreen-outlined","svgCode":"","codepoint":"\\e2f8"},{"name":"cc-fullscreen-outlined-reset","svgCode":"","codepoint":"\\e2f9"},{"name":"cc-funnel","svgCode":"","codepoint":"\\e2fb"},{"name":"cc-goback","svgCode":"","codepoint":"\\e2fa"},{"name":"cc-group","svgCode":"","codepoint":"\\e2fc"},{"name":"cc-hardware","svgCode":"","codepoint":"\\e2fd"},{"name":"cc-headoffice","svgCode":"","codepoint":"\\e2fe"},{"name":"cc-hide","svgCode":"","codepoint":"\\e300"},{"name":"cc-history","svgCode":"","codepoint":"\\e2ff"},{"name":"cc-history2","svgCode":"","codepoint":"\\e301"},{"name":"cc-home","svgCode":"","codepoint":"\\e302"},{"name":"cc-host","svgCode":"","codepoint":"\\e304"},{"name":"cc-host-breakdown","svgCode":"","codepoint":"\\e303"},{"name":"cc-host-free-pool","svgCode":"","codepoint":"\\e305"},{"name":"cc-icon-city","svgCode":"","codepoint":"\\e306"},{"name":"cc-idc","svgCode":"","codepoint":"\\e307"},{"name":"cc-idle-pool","svgCode":"","codepoint":"\\e308"},{"name":"cc-iis","svgCode":"","codepoint":"\\e309"},{"name":"cc-import","svgCode":"","codepoint":"\\e30a"},{"name":"cc-influxdb","svgCode":"","codepoint":"\\e30b"},{"name":"cc-information","svgCode":"","codepoint":"\\e30c"},{"name":"cc-instance-path","svgCode":"","codepoint":"\\e30d"},{"name":"cc-instance-total","svgCode":"","codepoint":"\\e30e"},{"name":"cc-international","svgCode":"","codepoint":"\\e30f"},{"name":"cc-ip","svgCode":"","codepoint":"\\e310"},{"name":"cc-kafka","svgCode":"","codepoint":"\\e312"},{"name":"cc-key","svgCode":"","codepoint":"\\e311"},{"name":"cc-label","svgCode":"","codepoint":"\\e313"},{"name":"cc-lang","svgCode":"","codepoint":"\\e314"},{"name":"cc-line","svgCode":"","codepoint":"\\e315"},{"name":"cc-link","svgCode":"","codepoint":"\\e316"},{"name":"cc-linux","svgCode":"","codepoint":"\\e317"},{"name":"cc-list","svgCode":"","codepoint":"\\e318"},{"name":"cc-loading","svgCode":"","codepoint":"\\e319"},{"name":"cc-lock","svgCode":"","codepoint":"\\e31a"},{"name":"cc-log","svgCode":"","codepoint":"\\e31b"},{"name":"cc-log-02","svgCode":"","codepoint":"\\e31c"},{"name":"cc-logout","svgCode":"","codepoint":"\\e31d"},{"name":"cc-machine","svgCode":"","codepoint":"\\e31e"},{"name":"cc-mail-server","svgCode":"","codepoint":"\\e31f"},{"name":"cc-mainboard","svgCode":"","codepoint":"\\e320"},{"name":"cc-map","svgCode":"","codepoint":"\\e321"},{"name":"cc-market","svgCode":"","codepoint":"\\e323"},{"name":"cc-memory","svgCode":"","codepoint":"\\e322"},{"name":"cc-middleware","svgCode":"","codepoint":"\\e324"},{"name":"cc-minicomputer","svgCode":"","codepoint":"\\e325"},{"name":"cc-model","svgCode":"","codepoint":"\\e326"},{"name":"cc-model-total","svgCode":"","codepoint":"\\e327"},{"name":"cc-module","svgCode":"","codepoint":"\\e328"},{"name":"cc-mongodb","svgCode":"","codepoint":"\\e329"},{"name":"cc-mysql","svgCode":"","codepoint":"\\e32a"},{"name":"cc-nav-advanced-features","svgCode":"","codepoint":"\\e32b"},{"name":"cc-nav-associated","svgCode":"","codepoint":"\\e32c"},{"name":"cc-nav-audit","svgCode":"","codepoint":"\\e32d"},{"name":"cc-nav-audit-02","svgCode":"","codepoint":"\\e32e"},{"name":"cc-nav-authority","svgCode":"","codepoint":"\\e32f"},{"name":"cc-nav-auto-discovery","svgCode":"","codepoint":"\\e330"},{"name":"cc-nav-business-level","svgCode":"","codepoint":"\\e331"},{"name":"cc-nav-collection","svgCode":"","codepoint":"\\e332"},{"name":"cc-nav-detective","svgCode":"","codepoint":"\\e333"},{"name":"cc-nav-free-machine","svgCode":"","codepoint":"\\e334"},{"name":"cc-nav-model","svgCode":"","codepoint":"\\e335"},{"name":"cc-nav-model-02","svgCode":"","codepoint":"\\e336"},{"name":"cc-nav-model-topo","svgCode":"","codepoint":"\\e337"},{"name":"cc-nav-resource","svgCode":"","codepoint":"\\e33b"},{"name":"cc-nav-service-topo","svgCode":"","codepoint":"\\e338"},{"name":"cc-nav-stick","svgCode":"","codepoint":"\\e339"},{"name":"cc-nav-subscription","svgCode":"","codepoint":"\\e33c"},{"name":"cc-nav-toggle","svgCode":"","codepoint":"\\e33a"},{"name":"cc-net-port","svgCode":"","codepoint":"\\e33d"},{"name":"cc-network-card","svgCode":"","codepoint":"\\e33e"},{"name":"cc-network-equipment","svgCode":"","codepoint":"\\e340"},{"name":"cc-network-manage","svgCode":"","codepoint":"\\e33f"},{"name":"cc-networks","svgCode":"","codepoint":"\\e342"},{"name":"cc-network-segment","svgCode":"","codepoint":"\\e341"},{"name":"cc-nginx","svgCode":"","codepoint":"\\e343"},{"name":"cc-no-authority","svgCode":"","codepoint":"\\e344"},{"name":"cc-node","svgCode":"","codepoint":"\\e346"},{"name":"cc-not-allowed","svgCode":"","codepoint":"\\e345"},{"name":"cc-operator","svgCode":"","codepoint":"\\e347"},{"name":"cc-oracle","svgCode":"","codepoint":"\\e348"},{"name":"cc-organization","svgCode":"","codepoint":"\\e349"},{"name":"cc-other","svgCode":"","codepoint":"\\e34b"},{"name":"cc-pie-chart","svgCode":"","codepoint":"\\e34a"},{"name":"cc-pin","svgCode":"","codepoint":"\\e34c"},{"name":"cc-plus","svgCode":"","codepoint":"\\e34d"},{"name":"cc-plus-circle","svgCode":"","codepoint":"\\e34e"},{"name":"cc-port","svgCode":"","codepoint":"\\e34f"},{"name":"cc-postgresql","svgCode":"","codepoint":"\\e350"},{"name":"cc-printer","svgCode":"","codepoint":"\\e351"},{"name":"cc-process","svgCode":"","codepoint":"\\e352"},{"name":"cc-program","svgCode":"","codepoint":"\\e353"},{"name":"cc-progress","svgCode":"","codepoint":"\\e354"},{"name":"cc-project","svgCode":"","codepoint":"\\e355"},{"name":"cc-push-configuration","svgCode":"","codepoint":"\\e357"},{"name":"cc-push-history","svgCode":"","codepoint":"\\e356"},{"name":"cc-question","svgCode":"","codepoint":"\\e358"},{"name":"cc-record","svgCode":"","codepoint":"\\e359"},{"name":"cc-rect-add","svgCode":"","codepoint":"\\e35a"},{"name":"cc-rect-sub","svgCode":"","codepoint":"\\e35b"},{"name":"cc-recycle","svgCode":"","codepoint":"\\e35c"},{"name":"cc-redis","svgCode":"","codepoint":"\\e35d"},{"name":"cc-repeater","svgCode":"","codepoint":"\\e35e"},{"name":"cc-report","svgCode":"","codepoint":"\\e35f"},{"name":"cc-required","svgCode":"","codepoint":"\\e360"},{"name":"cc-resize-full","svgCode":"","codepoint":"\\e361"},{"name":"cc-resize-small","svgCode":"","codepoint":"\\e362"},{"name":"cc-resource","svgCode":"","codepoint":"\\e363"},{"name":"cc-resources","svgCode":"","codepoint":"\\e364"},{"name":"cc-round-plus","svgCode":"","codepoint":"\\e365"},{"name":"cc-router","svgCode":"","codepoint":"\\e366"},{"name":"cc-security","svgCode":"","codepoint":"\\e367"},{"name":"cc-security2","svgCode":"","codepoint":"\\e368"},{"name":"cc-senior","svgCode":"","codepoint":"\\e369"},{"name":"cc-server","svgCode":"","codepoint":"\\e36a"},{"name":"cc-service","svgCode":"","codepoint":"\\e36b"},{"name":"cc-set","svgCode":"","codepoint":"\\e36c"},{"name":"cc-setting","svgCode":"","codepoint":"\\e36d"},{"name":"cc-share","svgCode":"","codepoint":"\\e36e"},{"name":"cc-shift","svgCode":"","codepoint":"\\e36f"},{"name":"cc-show","svgCode":"","codepoint":"\\e370"},{"name":"cc-skin","svgCode":"","codepoint":"\\e371"},{"name":"cc-skip","svgCode":"","codepoint":"\\e372"},{"name":"cc-sort","svgCode":"","codepoint":"\\e373"},{"name":"cc-sqlite","svgCode":"","codepoint":"\\e374"},{"name":"cc-sql-server","svgCode":"","codepoint":"\\e375"},{"name":"cc-square","svgCode":"","codepoint":"\\e376"},{"name":"cc-star","svgCode":"","codepoint":"\\e377"},{"name":"cc-statement","svgCode":"","codepoint":"\\e378"},{"name":"cc-stick","svgCode":"","codepoint":"\\e379"},{"name":"cc-storage","svgCode":"","codepoint":"\\e37a"},{"name":"cc-subnet","svgCode":"","codepoint":"\\e37b"},{"name":"cc-switch2","svgCode":"","codepoint":"\\e37c"},{"name":"cc-syncing","svgCode":"","codepoint":"\\e37d"},{"name":"cc-template-management","svgCode":"","codepoint":"\\e37e"},{"name":"cc-thumbtack","svgCode":"","codepoint":"\\e37f"},{"name":"cc-tips","svgCode":"","codepoint":"\\e380"},{"name":"cc-tips-close","svgCode":"","codepoint":"\\e381"},{"name":"cc-tomcat","svgCode":"","codepoint":"\\e382"},{"name":"cc-tree","svgCode":"","codepoint":"\\e383"},{"name":"cc-tree-triangle","svgCode":"","codepoint":"\\e384"},{"name":"cc-triangle","svgCode":"","codepoint":"\\e385"},{"name":"cc-triangle-sider","svgCode":"","codepoint":"\\e386"},{"name":"cc-unix","svgCode":"","codepoint":"\\e387"},{"name":"cc-updating","svgCode":"","codepoint":"\\e388"},{"name":"cc-ups","svgCode":"","codepoint":"\\e389"},{"name":"cc-user","svgCode":"","codepoint":"\\e38a"},{"name":"cc-virtual","svgCode":"","codepoint":"\\e38b"},{"name":"cc-vmware","svgCode":"","codepoint":"\\e38c"},{"name":"cc-vsphere","svgCode":"","codepoint":"\\e38d"},{"name":"cc-weblogic","svgCode":"","codepoint":"\\e38e"},{"name":"cc-win","svgCode":"","codepoint":"\\e38f"},{"name":"cc-win7","svgCode":"","codepoint":"\\e390"},{"name":"cc-wireless","svgCode":"","codepoint":"\\e391"},{"name":"cc-zoom-in","svgCode":"","codepoint":"\\e393"},{"name":"cc-zoom-out","svgCode":"","codepoint":"\\e392"},{"name":"cc-menu","svgCode":"","codepoint":"\\e394"},{"name":"cc-order","svgCode":"","codepoint":"\\e395"},{"name":"icon-angle-double-left","svgCode":"","codepoint":"\\e396"},{"name":"icon-angle-double-right","svgCode":"","codepoint":"\\e397"},{"name":"cc-sort-down","svgCode":"","codepoint":"\\e398"},{"name":"cc-sort-up","svgCode":"","codepoint":"\\e399"},{"name":"cc-cloud-account","svgCode":"","codepoint":"\\e39c"},{"name":"cc-cloud-discover","svgCode":"","codepoint":"\\e39b"},{"name":"cc-download","svgCode":"","codepoint":"\\e3a1"},{"name":"cc-global","svgCode":"","codepoint":"\\e39d"},{"name":"cc-business-set","svgCode":"","codepoint":"\\e3a2"},{"name":"summary-fill","svgCode":"","codepoint":"\\e3cb"},{"name":"cc-lock-fill","svgCode":"","codepoint":"\\e3aa"},{"name":"cc-edit-shape","svgCode":"","codepoint":"\\e3a3"},{"name":"cc-excel","svgCode":"","codepoint":"\\e3b7"},{"name":"cc-folder","svgCode":"","codepoint":"\\e3a4"},{"name":"cc-cancel-sticky","svgCode":"","codepoint":"\\e3a5"},{"name":"cc-sticky","svgCode":"","codepoint":"\\e3a6"},{"name":"cc-double-column","svgCode":"","codepoint":"\\e3a8"},{"name":"cc-single-column","svgCode":"","codepoint":"\\e3a7"},{"name":"cc-lock-line","svgCode":"","codepoint":"\\e3a9"},{"name":"copy","svgCode":"","codepoint":"\\e3ea"},{"name":"finger-line","svgCode":"","codepoint":"\\e3ab"},{"name":"cc-edit-bordered","svgCode":"","codepoint":"\\e3ac"},{"name":"cc-edit-bordered-disable","svgCode":"","codepoint":"\\e3ad"},{"name":"cc-set-permission","svgCode":"","codepoint":"\\e3af"},{"name":"json","svgCode":"","codepoint":"\\e3b2"},{"name":"cc-port-fill","svgCode":"","codepoint":"\\e3b0"},{"name":"cc-field-fill","svgCode":"","codepoint":"\\e3b1"},{"name":"cc-script-logo","svgCode":"","codepoint":"\\e3b6"},{"name":"cc-field-time","svgCode":"","codepoint":"\\e3df"},{"name":"cc-field-date","svgCode":"","codepoint":"\\e3e0"},{"name":"cc-dot-more","svgCode":"","codepoint":"\\e3e4"},{"name":"cc-unlock-fill","svgCode":"","codepoint":"\\e3bb"},{"name":"cc-model-module","svgCode":"","codepoint":"\\e3c0"},{"name":"cc-model-biz","svgCode":"","codepoint":"\\e3be"},{"name":"cc-model-host","svgCode":"","codepoint":"\\e3bc"},{"name":"cc-pod","svgCode":"","codepoint":"\\e3c2"},{"name":"cc-model-workload","svgCode":"","codepoint":"\\e3bf"},{"name":"cc-namespace","svgCode":"","codepoint":"\\e3c8"},{"name":"cc-container-node","svgCode":"","codepoint":"\\e3c1"},{"name":"cc-container","svgCode":"","codepoint":"\\e3c3"},{"name":"cc-chart-new","svgCode":"","codepoint":"\\e3c5"},{"name":"cc-log-new","svgCode":"","codepoint":"\\e3c7"},{"name":"cc-platlink","svgCode":"","codepoint":"\\e3c4"},{"name":"cc-location","svgCode":"","codepoint":"\\e3c6"},{"name":"cc-open-eye","svgCode":"","codepoint":"\\e3c9"},{"name":"cc-close-eye","svgCode":"","codepoint":"\\e3ca"},{"name":"cc-pod-folder","svgCode":"","codepoint":"\\e3d2"},{"name":"cc-field-singlechar","svgCode":"","codepoint":"\\e3d3"},{"name":"cc-model-host2","svgCode":"","codepoint":"\\e3d4"},{"name":"cc-field-int","svgCode":"","codepoint":"\\e3d8"},{"name":"cc-field-float","svgCode":"","codepoint":"\\e3d5"},{"name":"cc-field-enum","svgCode":"","codepoint":"\\e3d6"},{"name":"cc-field-longchar","svgCode":"","codepoint":"\\e3d9"},{"name":"cc-field-organization","svgCode":"","codepoint":"\\e3d7"},{"name":"cc-field-objuser","svgCode":"","codepoint":"\\e3db"},{"name":"cc-field-bool","svgCode":"","codepoint":"\\e3da"},{"name":"cc-field-timezone","svgCode":"","codepoint":"\\e3dc"},{"name":"zonghe","svgCode":"","codepoint":"\\e3dd"},{"name":"cc-table","svgCode":"","codepoint":"\\e3de"},{"name":"cc-field-enummulti","svgCode":"","codepoint":"\\e3e1"},{"name":"cc-field-list","svgCode":"","codepoint":"\\e3e2"},{"name":"cc-unbind","svgCode":"","codepoint":"\\e3e3"},{"name":"cc-menu-field-template","svgCode":"","codepoint":"\\e3e5"},{"name":"cc-field-innertable","svgCode":"","codepoint":"\\e3e7"},{"name":"cc-field-enumquote","svgCode":"","codepoint":"\\e3e8"},{"name":"cc-field-foreignkey","svgCode":"","codepoint":"\\e3e9"}]} \ No newline at end of file diff --git a/src/ui/src/assets/icon/bk-icon-cmdb/style.css b/src/ui/src/assets/icon/bk-icon-cmdb/style.css index 4dc8b517b0..ce7b7bf64f 100644 --- a/src/ui/src/assets/icon/bk-icon-cmdb/style.css +++ b/src/ui/src/assets/icon/bk-icon-cmdb/style.css @@ -752,15 +752,6 @@ url("fonts/iconcool.eot?#iefix") format("embedded-opentype"); .icon-cc-global:before { content: "\e39d"; } -.icon-cc-cloud-tencent:before { - content: "\e39e"; -} -.icon-cc-cloud-aws:before { - content: "\e39f"; -} -.icon-cc-cloud-ali:before { - content: "\e3a0"; -} .icon-cc-business-set:before { content: "\e3a2"; } diff --git a/src/ui/src/components/model-manage/field-group/index.vue b/src/ui/src/components/model-manage/field-group/index.vue index 0811ddf7be..6648e212cf 100644 --- a/src/ui/src/components/model-manage/field-group/index.vue +++ b/src/ui/src/components/model-manage/field-group/index.vue @@ -579,15 +579,7 @@ }, async created() { this.handleFilter = debounce(this.filterField, 300) - const [properties, groups, uniqueList] = await Promise.all([ - this.getProperties(), - this.getPropertyGroups(), - this.getVerification() - ]) - this.properties = properties - this.groups = groups - this.uniqueList = uniqueList - this.init(properties, groups) + this.initProperies() this.$nextTick(() => { this.execRouteAction() @@ -677,6 +669,17 @@ this.uniqueList = uniqueList this.init(properties, groups) }, + async initProperies() { + const [properties, groups, uniqueList] = await Promise.all([ + this.getProperties(), + this.getPropertyGroups(), + this.getVerification() + ]) + this.properties = properties + this.groups = groups + this.uniqueList = uniqueList + this.init(properties, groups) + }, init(properties, groups) { properties = this.sortProperties(properties) const separatedGroups = this.separateBizCustomGroups(groups) diff --git a/src/ui/src/components/ui/form/user.vue b/src/ui/src/components/ui/form/user.vue index 72790591ef..dce761e6c2 100644 --- a/src/ui/src/components/ui/form/user.vue +++ b/src/ui/src/components/ui/form/user.vue @@ -144,12 +144,14 @@ value.splice(0, value.length, this.userName) } this.localValue = value + // 点击了“我”之后隐藏选择框 + this.$refs.userSelector?.reset() }, - errorHandler(res) { - if (res.code === 1306000) { - showLoginModal() - } - } + errorHandler(res) { + if (res.code === 1306000) { + showLoginModal() + } + } } } diff --git a/src/ui/src/components/ui/other/vendor.vue b/src/ui/src/components/ui/other/vendor.vue index 609755ae35..5cf67043b0 100644 --- a/src/ui/src/components/ui/other/vendor.vue +++ b/src/ui/src/components/ui/other/vendor.vue @@ -13,9 +13,6 @@