TencentBlueKing / bk-nodeman

蓝鲸节点管理,可以对蓝鲸体系中的GSE Agent进行管理,包括状态查询、版本更新、配置管理、健康检查、进程管理等。
MIT License
51 stars 55 forks source link

fix: 填充业务信息时因节点类型预期不为字典导致报错 #2247

Open ping15 opened 5 months ago

ping15 commented 5 months ago

问题描述

简明扼要地描述bug是什么

1. node的类型可能为list

image image 企业微信截图_17157674901927

2. node_type为TOPO,object_type为HOST的情况下,scope["nodes"]的某一项可能没有bk_obj_id信息

企业微信截图_1716173604693 image image

截屏

请提供截屏来解释你的问题,当然这也能更好地帮助我们理解问题。

请提供以下信息

重现方法

列出如何重现的方法或操作步骤

  1. 转到 '....'
  2. 点击 '....'
  3. 错误现象 '....'

修复

建议的修复方案

修复方案

功能自测

代码变更覆盖功能点需要自测并截图

功能点 1

描述代码变更涉及功能点及自测截图

功能点 2

描述代码变更涉及功能点及自测截图

...

ping15 commented 5 months ago

类型标注修正

List[Dict[str, Union[str, int]]] -> List[Union[Dict[str, Union[str, int]], List[Dict[str, Union[str, int]]]]]

使用isinstance判断,如果为list则继续调用fill_nodes_biz_info,实现如下

image

ZhuoZhuoCrayon commented 5 months ago
  1. 看上云有没有类型报错
  2. 判断下 bk_obj_id,看下要不要忽略