OEM功能:HostStatus Collection Members 死链问题

发布时间:2026/7/24 2:16:11

OEM功能:HostStatus Collection Members 死链问题 前提说明/redfish/v1/Chassis/Chassis_ID/HostStatus 是一个 Redfish Collection Resource其 Members 当前采用静态硬编码实现始终返回以下 5 个成员资源CPUMemoryDiskNetInterfaceSysInfo这 5 个资源的数据来源于 Host OS由 BMC 接收并解析后写入 /usr/share/host_resource_status.txt。资源是否能够正常提供数据依赖于该文件当前测试情况异常场景/usr/share/host_resource_status.txt不存在当 /usr/share/host_resource_status.txt 不存在时资源仍返回固定的 5 个 MembersCPUMemoryDiskNetInterfaceSysInfo但访问上述子资源时均返回 404 Not FoundGET /HostStatus/CPU → 404GET /HostStatus/Memory → 404GET /HostStatus/Disk → 404GET /HostStatus/NetInterface → 404GET /HostStatus/SysInfo → 404即父资源在 Members 中暴露了这些成员资源的 URI但访问这些 URI 时全部返回 404 Not Found导致 Members 中包含不可访问的资源链接Dead Link。。根据 DMTF Redfish SpecificationDSP0266对 Collection Members 的定义The value of the Members property is an array of links to the members of this collection.Each link shall be a valid URL that, when retrieved, returns a valid resource.当前实现中当 /usr/share/host_resource_status.txt 不存在时HostStatus 返回的 Members 中所有链接均返回 404 Not Found无法返回对应的有效资源因此不满足上述要求。正常场景/usr/share/host_resource_status.txt存在当 /usr/share/host_resource_status.txt 存在时子资源能够正常响应有数据时返回200 OK和对应数据无数据时返回200 OK和空结构不会返回 404 Not Found。问题原因HostStatus 在生成 Members 时未判断/usr/share/host_resource_status.txt 是否存在导致数据源不存在时仍然暴露不可访问的成员资源 URI。影响自动化测试用例Verify Redfish Unresponsive URL paths会递归遍历 /redfish/v1 下所有资源并访问 Members 中声明的所有成员资源。由于 HostStatus 在数据源文件不存在时仍暴露不可访问的成员 URI自动化遍历这些链接时均返回 404 Not Found被识别为死链Dead Link最终导致测试失败。结论当前实现中HostStatus 在数据源文件不存在时仍返回固定的 Members导致 Members 中包含返回 404 Not Found 的资源链接。建议在生成 Members 时增加数据源文件存在性检查。当数据源文件不存在时返回空的 Members避免暴露不可访问的资源链接消除死链。

相关新闻