【iTestSmart 1.0.36】手动配置IPv4地址模式下设置DNS模式为自动获取IPv4

一、测试环境
硬件:S920X20
BMC Version: 25.06.00
二、问题描述
OpenUBMC->融合运维->手动配置IPv4地址模式下设置DNS模式为自动获取IPv4 DNS地址,测试结果Fail

答案内容由AI生成,仅供参考:
### 问题概述

在使用 **iTestSmart 1.0.36** 对 **S920X20** 主板的 **BMC Version: 25.06.00** 进行测试时,执行“手动配置IPv4地址模式下设置DNS模式为自动获取IPv4 DNS地址”用例(`REDFISH_Eth_076_001`)失败。测试日志显示,在 `pre_test_case` 和 `post_test_case` 阶段均出现异常:

- `pre_test_case` 抛出错误:`AttributeError: 'NoneType' object has no attribute 'find'`
- `post_test_case` 抛出错误:`AttributeError: 'REDFISH_Eth_076_001' object has no attribute 'serialNetworkMgt'`

这表明测试脚本在初始化或资源查找阶段未能正确获取所需对象,导致后续操作无法执行。

---

### 可能原因分析

根据知识库信息及当前测试上下文,可能的原因包括:

1. **Redfish 接口兼容性问题**  
   OpenUBMC 支持 Redfish 标准接口,但部分属性如 `NameServers`、`StaticNameServers` 和自定义属性 `DNSAddressOrigin` 存在实现冲突(见评审文档《EthernetInterface接口新增属性StaticNameServers》)。当设置 DNS 模式为自动获取时,若底层未正确处理 DHCP 与静态模式切换逻辑,可能导致接口返回空值或异常结构,从而引发 `'NoneType' object has no attribute 'find'` 错误。

2. **测试脚本依赖缺失组件**  
   错误 `object has no attribute 'serialNetworkMgt'` 表明测试类中缺少对 `serialNetworkMgt` 属性的定义或初始化。该属性可能是用于串口网络管理的功能模块,若在当前 BMC 版本或硬件平台上未启用或未注入,则会导致运行时访问失败。

3. **BMC 网络管理组件(bmc_network)功能限制**  
   `bmc_network` 是负责 IPv4/IPv6 配置的核心闭源组件。已有案例表明,旧版本 `bmc_network` 不支持网口 link 状态变化后重新通过 DHCP 获取 IP 地址(需升级至 1.70.1 版本以上)。类似地,DNS 自动获取功能也可能受限于组件版本,特别是在混合配置(手动 IP + 自动 DNS)场景下。

4. **测试工具版本适配问题**  
   尽管 iTestSmart 已支持端口自定义等功能更新,但仍可能存在 Redfish 测试用例与特定 BMC 固件版本之间的适配延迟。例如,某些新特性需等待工具团队集成并发布新版测试包才能正常运行。

---

### 建议解决方案

1. **确认 bmc_network 组件版本**  
   检查当前 BMC 系统中 `bmc_network` 组件版本是否为最新。若低于 `1.70.1`,建议升级至支持完整 DHCP 动态配置的版本,以确保 IPv4 地址和 DNS 能协同工作。

2. **验证 Redfish 接口行为一致性**  
   使用 `curl` 或 Postman 手动调用 `/redfish/v1/Managers/1/EthernetInterfaces/1` 接口,检查其响应中 `NameServers`、`StaticNameServers` 和 `DNSAddressOrigin` 字段的行为是否符合预期:
   - 当设置为“自动获取”时,应由 DHCP 提供 DNS 地址;
   - 若返回空或 null,说明服务端未正确填充字段。

3. **检查测试脚本初始化逻辑**  
   审查 `REDFISH_Eth_076_001.py` 脚本中 `serialNetworkMgt` 的初始化流程,确认其依赖的服务或连接是否已正确定义。若该功能在 S920X20 平台上不可用,应做条件判断避免访问不存在的属性。

4. **联系 iTestSmart 工具维护团队**  
   此类结构性错误可能已在后续版本修复。建议联系 `Pae` 或相关接口人获取 **iTestSmart 1.0.36+** 的更新补丁,或确认是否存在已知 issue 及 workaround。

5. **参考定制化配置规范**  
   根据《BMC出厂配置定制》文档,IPv4 DNS 获取模式可通过 `BMCSet_DDSN_AutoIpMode=Dynamic` 显式开启自动获取。可尝试预先通过 CSR 或命令行设置该参数,再运行测试用例。

---

### 总结

本次测试失败极有可能源于 **Redfish 接口在混合网络配置下的行为不一致**,叠加 **测试脚本对特定属性的强依赖未做容错处理**。建议优先排查 `bmc_network` 组件版本与 Redfish 接口实际输出,并同步推动测试脚本健壮性优化。如问题持续存在,应在 openUBMC 社区提交详细日志请求官方支持。

10月版本已解决,测试时请确认环境串口正常