【待评审】框级聚合管理接口评审

1. 背景

管理板(SMM)需要对框内多块节点 BMC 提供统一框级运维管理界面,例如通过管理板 Web 界面批量升级框内多块节点板固件和固件版本信息查询、一键式信息批量收集、多节点电源状态查询与设置、多节点BMC网络信息查询和配置等能力。管理板需要提供 WebREST 管理接口,以及框级聚合管理的资源树接口。

2. 整体方案

管理板提供聚合管理的 WebREST 接口,支持用户通过 Web 界面选择目标操作以及目标单板;产品组件实现聚合管理的资源树接口,将调用拆分至各目标 BMC 已有接口,并将聚合结果返回上层(Web)。

维度 说明
部署位置 管理板(框级)
路径 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/<ServiceName>
聚合原则 多板操作统一使用 TargetBoards: as(或单板 TargetBoard: s);返回 a(...) 结构化数组,按 (TargetBoard, ResultCode, ...) 组织
长耗时操作 配置导入导出、日志收集、固件升级返回 TaskId: u;进度与操作结果通过接口内 Get*Progress / GetUpgradeStatus 查询(见 §2.1)

2.1 任务类 per-board 子进度与操作结果

日志收集(Dump)、配置导入/导出(Configuration)、固件升级(Update)等多板长耗时操作,采用统一 汇聚任务 + 单板子任务 模型,对齐 openUBMC / BMC UpdateService 惯例:

阶段 行为
启动 Start* / Collect / Import / Export 返回顶层 TaskId: u,汇聚层为每块 TargetBoard 创建子任务并 fan-out
轮询 同一进度查询端点(如 GetProgress(TaskId))反复调用;单板子任务完成时,该板 Result / Message 即时填充,无需另开结果查询接口
结束 全部子任务终态后,整体 TaskState 变为 Completed / Failed / Cancelled

整体进度 AggregateTaskProgress

字段 类型 说明
TaskId u 汇聚任务 ID
TaskState s Pending / Running / Completed / Failed / Cancelled
Percent i 可选,整体进度 0–100(各板 Percent 加权或已完成数占比)
ResultSummary struct 可选汇总:SuccessCount, FailedCount, RunningCount, PendingCount
BoardTasks a(BoardTask) 各板子进度与操作结果

单板子项 BoardTask(通用)

字段 类型 说明
TargetBoard s 目标板 FRU/Slot ID
State s Pending / Running / Completed / Failed / Cancelled
Percent i 该板进度 0–100;未开始时可为 0 或省略
Result s Success / Failed / None(进行中或未结束时为 None
Message s 人类可读状态或错误描述
ErrorId i 可选,BMC 侧错误码(0 表示无错误)

各能力扩展字段(写入 BoardTaskResultPayload

能力 扩展字段 说明
Dump / Collect OutputFilePath 该板日志包本地/汇聚层路径,成功后可用
Configuration Export OutputFilePath, FileName 该板导出文件在管理板缓存区的路径与文件名;Export 成功后由汇聚层写入缓存
Configuration Import 无额外 payload,Result/Message 即可
Update FirmwareVersion, ActivationStatus 升级完成后可选返回版本与激活状态

方法命名

接口 启动 进度/结果查询
bmc.kepler.AggregationService.Dump Collect / Dump GetProgress(TaskId) → Progress: AggregateTaskProgress
bmc.kepler.AggregationService.Configuration Import / Export GetImportExportProgress(TaskId) → Progress: AggregateTaskProgress
bmc.kepler.AggregationService.Configuration Export 缓存 ListExportFiles / DownloadExportFile / DeleteExportFile(Export 完成后管理板缓存文件)
bmc.kepler.AggregationService.Update StartUpgrade GetUpgradeStatus(TaskId) → Status: AggregateTaskProgress;GetUpdateProgress() → UpgradeTasks: a(AggregateTaskProgress)

WebREST:进度 URI 响应体 MUST 包含 BoardTasks 数组(或等价 JSON 字段名 boardTasks),每项含 StatePercentResultMessage 及能力相关 payload;整体含 TaskStatePercentResultSummary

bmc.kepler.AggregationService.BootOption:启动项读写为同步操作,不纳入本模型。


3. 聚合管理 WebREST / 资源树评审总表

# WebREST 功能域 WebREST 路径 资源树 Path 主接口 方法 BMC 参考接口 多板/单板 相关评审点 评审状态
1 汇聚组 /bmc/kepler/AggregationService/Aggregates/${AggregateId} bmc.kepler.AggregationService.Aggregate —(仅属性) 汇聚组 AS-02 待评审
2 电源(控制 + 度量) /UI/Rest/Chassis/AggregationService/PowerControl/Actions/PowerCtrl(控制);/UI/Rest/Chassis/AggregationService/Power(度量,可选) /bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService bmc.kepler.AggregationService.PowerControlbmc.kepler.AggregationService.Power(可选) PowerCtrl、GetPowerState;GetPowerMetrics(可选) bmc.kepler.Systems.FruCtrl / BMC Power 度量 多板 AS-03AS-04 待评审
3 BMC账户管理 /UI/Rest/Chassis/AggregationService/AccountService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AccountService bmc.kepler.AggregationService.Account GetAccounts、NewAccount、ModifyAccount、DeleteAccount bmc.kepler.AccountService + ManagerAccounts 单板 AS-05 待评审
4 BMC网络配置 /UI/Rest/Chassis/AggregationService/NetworkService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/NetworkService bmc.kepler.AggregationService.Network GetIpv4、GetIpv6、SetIpv4、SetIpv6 bmc.kepler.Managers.EthernetInterfaces.Ipv4/Ipv6 多板 AS-06 待评审
5 固件升级 /UI/Rest/Chassis/AggregationService/UpdateService/Actions/StartUpgrade /bmc/kepler/AggregationService/Aggregates/${AggregateId}/UpdateService bmc.kepler.AggregationService.Update StartUpgrade、GetUpgradeStatus、GetUpdateProgress bmc.kepler.UpdateService 多板 AS-07 待评审
6 日志收集 /UI/Rest/Chassis/AggregationService/LogService/Actions/Dump /bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogService bmc.kepler.AggregationService.Dump Collect、Dump、GetProgress bmc.kepler.Managers.LogServices 多板 AS-08 待评审
7 配置管理 /UI/Rest/Chassis/AggregationService/Configuration/Actions/ImportConfig(导入);/UI/Rest/Chassis/AggregationService/Configuration/Actions/ExportConfig(导出);/UI/Rest/Chassis/AggregationService/Configuration/ImportExportProgress(进度);/UI/Rest/Chassis/AggregationService/Configuration/ListExportFiles(查询已有配置文件的单板);/UI/Rest/Chassis/AggregationService/Configuration/DownloadExportFile(下载);/UI/Rest/Chassis/AggregationService/Configuration/DeleteExportFile(按板独立删除) /bmc/kepler/AggregationService/Aggregates/${AggregateId}/ConfigurationService bmc.kepler.AggregationService.Configuration Import、Export、GetImportExportProgress、ListExportFiles、DownloadExportFile、DeleteExportFile bmc.kepler.Managers.Configurations 多板 AS-09 待评审
8 启动项 /UI/Rest/Chassis/AggregationService/BootOptions /bmc/kepler/AggregationService/Aggregates/${AggregateId}/SystemService bmc.kepler.AggregationService.BootOption GetBootOptions、SetBootOptions bmc.kepler.Systems.BootOptions 多板 AS-10 待评审
9 资产清单 /UI/Rest/Chassis/AggregationService/AssetInventory /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.AssetInventory GetAssetInventory bmc.kepler.Inventory.Hardware 多板 AS-11 待评审
10 健康状态 /UI/Rest/Chassis/AggregationService/AssetHealthStatus /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.AssetHealth GetHealthStatus FruData.Overview.Health 多板 AS-12 待评审
11 机框信息管理 /UI/Rest/Enclosure/Overview /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.Backplane 待补充 —(背板信息管理) 机框 AS-13 待评审
12 单板对象(在位/板名/电源/ID + Redfish 转发) —(不提供 WebREST,仅资源树) /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId} bmc.kepler.AggregationService.Board GetRedfishAccessInfo(属性:Id、Presence、BoardName、PowerState) BMC PowerState / 在位;Redfish 转发由汇聚层生成 每板一对象 AS-14 待评审

4. 评审点清单

评审点编号 类别 评审对象 资源树 Path 接口 方法 详细
AS-01 新增路径 AggregationService 资源树路径 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/bmc/kepler/AggregationService/Aggregates/${AggregateId}/CertificateService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AccountService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/ConfigurationService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/UpdateService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/SystemService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/NetworkService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId} §5.1
AS-02 新增接口 Aggregate /bmc/kepler/AggregationService/Aggregates/${AggregateId} bmc.kepler.AggregationService.Aggregate —(仅属性) §5.2
AS-03 新增接口 PowerControl /bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService bmc.kepler.AggregationService.PowerControl PowerCtrl、GetPowerState §5.3
AS-04 新增接口 Power(可选) /bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService bmc.kepler.AggregationService.Power GetPowerMetrics §5.4
AS-05 新增接口 Account /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AccountService bmc.kepler.AggregationService.Account GetAccounts、NewAccount、ModifyAccount、DeleteAccount §5.5
AS-06 新增接口 Network /bmc/kepler/AggregationService/Aggregates/${AggregateId}/NetworkService bmc.kepler.AggregationService.Network GetIpv4、GetIpv6、SetIpv4、SetIpv6 §5.6
AS-07 新增接口 Update /bmc/kepler/AggregationService/Aggregates/${AggregateId}/UpdateService bmc.kepler.AggregationService.Update StartUpgrade、GetUpgradeStatus、GetUpdateProgress §5.7
AS-08 新增接口 Dump /bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogService bmc.kepler.AggregationService.Dump Collect、Dump、GetProgress §5.8
AS-09 新增接口 Configuration /bmc/kepler/AggregationService/Aggregates/${AggregateId}/ConfigurationService bmc.kepler.AggregationService.Configuration Import、Export、GetImportExportProgress、ListExportFiles、DownloadExportFile、DeleteExportFile §5.9
AS-10 新增接口 BootOption /bmc/kepler/AggregationService/Aggregates/${AggregateId}/SystemService bmc.kepler.AggregationService.BootOption GetBootOptions、SetBootOptions §5.10
AS-11 新增接口 AssetInventory /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.AssetInventory GetAssetInventory §5.11
AS-12 新增接口 AssetHealth /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.AssetHealth GetHealthStatus §5.12
AS-13 新增接口 Backplane(机框信息管理) /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.Backplane 待补充 §5.13
AS-14 新增接口 Board(单板对象) /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId} bmc.kepler.AggregationService.Board GetRedfishAccessInfo §5.14

5. 详细评审点

5.1 [AS-01] 新增路径

对象类名 Path 模板 实现接口
Aggregate /bmc/kepler/AggregationService/Aggregates/${AggregateId} bmc.kepler.AggregationService.Aggregatebmc.kepler.Object.Properties
AggregateCertificateService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/CertificateService bmc.kepler.AggregationService.Certificate(既有,略)
AggregateAccountService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AccountService bmc.kepler.AggregationService.Account
AggregateConfigurationService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/ConfigurationService bmc.kepler.AggregationService.Configuration(含 Import/Export/进度查询及 Export 缓存 List/Download/Delete)
AggregateLogService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogService bmc.kepler.AggregationService.Dump
AggregateUpdateService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/UpdateService bmc.kepler.AggregationService.Update
AggregateSystemService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/SystemService bmc.kepler.AggregationService.BootOptionbmc.kepler.Object.Properties
AggregateNetworkService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/NetworkService bmc.kepler.AggregationService.Network
AggregatePowerService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService bmc.kepler.AggregationService.Power(可选),bmc.kepler.AggregationService.PowerControlbmc.kepler.Object.Properties
AggregateAssetService /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService bmc.kepler.AggregationService.AssetInventorybmc.kepler.AggregationService.AssetHealthbmc.kepler.AggregationService.Backplane
AggregateBoard /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId} bmc.kepler.AggregationService.Boardbmc.kepler.Object.Properties

路径影响

  • 全部为新路径,位于 AggregationService 命名空间,与 BMC 本地路径隔离。

  • WebREST 网关映射至上述 Path;AggregateId 标识 chassis 汇聚组。WebREST 电源控制 URI /UI/Rest/Chassis/AggregationService/PowerControl/Actions/PowerCtrl 映射至资源树 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService + 接口 bmc.kepler.AggregationService.PowerControl;启动项 URI /UI/Rest/Chassis/AggregationService/BootOptions 映射至资源树 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/SystemService + 接口 bmc.kepler.AggregationService.BootOption

  • Configuration Export 缓存ListExportFiles / DownloadExportFile / DeleteExportFile 挂载于 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/ConfigurationService + bmc.kepler.AggregationService.Configuration每板仅保留最新一份导出文件;WebREST 可将 ExportFiles 暴露为独立 REST 子资源 URI,不新增 ExportFiles Path 对象。

  • 2 级路径:功能对象挂在 ${AggregateId}/<ServiceName>单板对象例外:首版增加 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId}(在位、板名、电源状态、ID 及 Redfish 转发方法)。其它资产子对象仍以 Service 级 batch 方法为主。


5.2 [AS-02] bmc.kepler.AggregationService.Aggregate

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}

用途:汇聚组(框/chassis)元数据。

属性 类型 读写 说明
MemberBoards String[] R 成员板 FRU/Slot ID 列表
Description String R 汇聚组描述
方法 请求 响应 说明
首版无方法

信号:无
新增接口影响:管理板 AggregationService 新建 Aggregate 对象;Web/Redfish 用于枚举框内 BMC 成员。不影响 BMC 侧接口。


5.3 [AS-03] bmc.kepler.AggregationService.PowerControl

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService(与 AS-04 bmc.kepler.AggregationService.Power 同对象,非独立 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerControlService 路径)

BMC 参考bmc.kepler.Systems.FruCtrl.PowerCtrl / PowerState

WebREST:控制 POST /UI/Rest/Chassis/AggregationService/PowerControl/Actions/PowerCtrl;状态查询为资源 GET,不走 Actions。

方法 请求参数 响应 说明
PowerCtrl TargetBoards: as; PowerCtrlType: s; RestartCause: s Results: a(PowerCtrlResult) 批量上下电,转发各 BMC FruCtrl.PowerCtrl
GetPowerState TargetBoards: as PowerStates: a(BoardPowerState) 批量查询 PowerState

PowerCtrlType 枚举On, ForceOff, GracefulShutdown, ForceRestart, ForcePowerCycle, PowerCycle, ACCycle(与 BMC 一致)

PowerCtrlResult 字段 类型 说明
TargetBoard s 目标板 ID
ResultCode i 0 成功,非 0 失败
ResultDetail s 失败详情

新增接口影响:Web 框级电源菜单;Redfish Chassis Power 汇聚。实现层需维护 TargetBoard→BMC 路由表。不改变 BMC FruCtrl 语义。


5.4 [AS-04] bmc.kepler.AggregationService.Power(可选)

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/PowerService(与 AS-03 bmc.kepler.AggregationService.PowerControl 同对象)

方法 请求 响应 说明
GetPowerMetrics TargetBoards: as Metrics: a(BoardPowerMetrics) 汇聚各 BMC 功耗/度量(若 BMC 暴露)

新增接口影响:仅只读汇聚,可选实现。


5.5 [AS-05] bmc.kepler.AggregationService.Account

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AccountService

BMC 参考bmc.kepler.AccountService.ManagerAccounts

方法 请求参数 响应 说明
GetAccounts TargetBoard: s Accounts: a(AccountEntry) 查询指定 BMC 账户列表
NewAccount TargetBoard: s; AccountId: y; UserName: s; Password: ay; RoleId: y; … AccountId: y 新建账户
ModifyAccount TargetBoard: s; AccountId: y; Properties: a{sv} ResultCode: i 修改账户
DeleteAccount TargetBoard: s; AccountId: y ResultCode: i 删除账户

约束每次调用仅允许一个 TargetBoard(账户操作不宜批量,避免部分失败语义复杂)。

新增接口影响:Web 框级账户页需先选目标 BMC。权限与 BMC AccountService 一致。


5.6 [AS-06] bmc.kepler.AggregationService.Network

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/NetworkService

BMC 参考bmc.kepler.Managers.EthernetInterfaces.Ipv4 / Ipv6

方法 请求参数 响应 说明
GetIpv4 TargetBoards: as Ipv4Configs: a(BoardIpv4Config) 批量读 IPv4
GetIpv6 TargetBoards: as Ipv6Configs: a(BoardIpv6Config) 批量读 IPv6
SetIpv4 TargetBoard: s; IpMode: s; IpAddr: s; SubnetMask: s; DefaultGateway: s ResultCode: i 设置单板 IPv4
SetIpv6 TargetBoard: s; IpMode: s; IpAddr: s; PrefixLength: y ResultCode: i 设置单板 IPv6

新增接口影响:框级网络配置页;Set* 为单板操作,Get* 支持批量。


5.7 [AS-07] bmc.kepler.AggregationService.Update

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/UpdateService

BMC 参考bmc.kepler.UpdateService.StartUpgrade / GetUpgradeStatus

WebREST:升级动作 POST /UI/Rest/Chassis/AggregationService/UpdateService/Actions/StartUpgrade;进度为资源 GET,不走 Actions。

方法 请求参数 响应 说明
StartUpgrade TargetBoards: as; FilePath: s; AdditionalOptions: a{sv} TaskId: u 向多板下发升级,返回汇聚任务 ID
GetUpgradeStatus TaskId: u Status: AggregateTaskProgress 查询指定升级任务的整体进度 + 各板 BoardTasks(含 Result)
GetUpdateProgress UpgradeTasks: a(AggregateTaskProgress) 列出所有进行中的升级任务及子项

AggregateTaskProgress / BoardTask(Update):见 §2.1。BoardTask 扩展字段:FirmwareVersion, ActivationStatus(Completed 且 Result=Success 时可选)。

新增接口影响:框级固件升级向导;UI 按 BoardTasks 展示每板进度条与成功/失败及错误信息;需与 TaskService 集成。


5.8 [AS-08] bmc.kepler.AggregationService.Dump

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogService

BMC 参考bmc.kepler.Managers.LogServices.Dump

WebREST:收集动作 POST /UI/Rest/Chassis/AggregationService/LogService/Actions/Dump;进度为资源 GET,不走 Actions。

方法 请求参数 响应 说明
Collect TargetBoards: as; FilePath: s TaskId: u 日志一键收集(汇聚命名 Collect,等价 BMC Dump)
Dump TargetBoards: as; FilePath: s TaskId: u Collect 别名,兼容 WebREST
GetProgress TaskId: u Progress: AggregateTaskProgress 查询收集进度与各板操作结果(同一端点轮询)

BoardTask 扩展OutputFilePath — 该板日志包路径,Result=Success 时有效。

路径别名:资源树路径 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogService;旧称 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/LogCollectionService 保留为文档别名。

新增接口影响:框级日志导出;多板并行收集,TaskId 关联子任务;WebREST 进度 GET 须返回 per-board 项。


5.9 [AS-09] bmc.kepler.AggregationService.Configuration

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/ConfigurationService
接口bmc.kepler.AggregationService.Configuration仅此一个接口;导入/导出/进度/列文件/下载/删除均为该接口下的方法,不拆多个接口、不拆 Path)
BMC 参考bmc.kepler.Managers.Configurations.Import / Export

配置管理能力全部落在上述路径 + 接口上:导入、导出、导出/导入进度,以及管理板缓存中按单板查询、下载、独立删除配置文件。

5.9.1 资源树方法

能力 方法 请求参数 响应 说明
配置导入 Import TargetBoards: as; FilePath: s; Type: s TaskId: u fan-out 至各 BMC Import;返回汇聚任务 ID
配置导出 Export TargetBoards: as; FilePath: s; Type: s TaskId: u fan-out 至各 BMC Export;单板成功后落盘管理板缓存(每板仅最新一份)
导出/导入进度 GetImportExportProgress TaskId: u Progress: AggregateTaskProgress 同一端点轮询;含各板 BoardTasks(State/Percent/Result/Message);导出成功板带 OutputFilePathFileName
查询哪些单板已有配置文件 ListExportFiles TargetBoards: as(可选) ExportFiles: a(ExportFileEntry) 列出缓存中已有导出文件的单板;有条目即该板有文件;每板至多一条;省略 TargetBoards 返回全部已有文件的板
下载配置文件 DownloadExportFile FileId: s TargetBoard: s FilePath: s; FileName: s; FileSizeBytes: u; GeneratedTime: s; TargetBoard: s 按板取缓存文件元数据;WebREST 据 FilePath 流式返回文件体
独立删除单板配置文件 DeleteExportFile FileId: s TargetBoard: s ResultCode: i 按板独立删除该板缓存;0 成功。一次调用删一块板,不影响其它板文件

定位规则:每板仅一份缓存,TargetBoard 即可唯一定位下载/删除;FileId 可选,用于校验。

ExportFileEntry:FileId, TargetBoard, FileName, GeneratedTime(ISO8601,有文件时必填), FileSizeBytes(可选), OutputFilePath(可选,网关用)

进度 AggregateTaskProgress:见 §2.1。GetImportExportProgress 同时服务导入任务与导出任务(由 TaskId 区分)。

5.9.2 WebREST 对照

功能 URI 资源树方法
配置导入 /UI/Rest/Chassis/AggregationService/Configuration/Actions/ImportConfig bmc.kepler.AggregationService.Configuration.Import
配置导出 /UI/Rest/Chassis/AggregationService/Configuration/Actions/ExportConfig bmc.kepler.AggregationService.Configuration.Export
进度查询 /UI/Rest/Chassis/AggregationService/Configuration/ImportExportProgress bmc.kepler.AggregationService.Configuration.GetImportExportProgress
查询已有配置文件的单板 /UI/Rest/Chassis/AggregationService/Configuration/ListExportFiles bmc.kepler.AggregationService.Configuration.ListExportFiles
下载 /UI/Rest/Chassis/AggregationService/Configuration/DownloadExportFile bmc.kepler.AggregationService.Configuration.DownloadExportFile
按板独立删除 /UI/Rest/Chassis/AggregationService/Configuration/DeleteExportFile bmc.kepler.AggregationService.Configuration.DeleteExportFile

导入/导出为 Action.../Actions/<Name>)。进度、列表、下载、删除为资源 URI,不走 Actions。

5.9.3 导出缓存策略

Web UI ──Export──► 汇聚层 ──fan-out──► 各 BMC Export
                      │
                      ▼ 各板 Success
              落盘 {CacheRoot}/{TargetBoard}/{FileName}(先删该板旧文件)
                      │
                      ▼
         ListExportFiles / DownloadExportFile / DeleteExportFile

策略 说明
每板一份 每块 TargetBoard 只保留最新一份成功导出文件;不按 TaskId 留历史
独立删除 DeleteExportFile(TargetBoard) 只删该板,其它板文件不变
覆盖 对该板再次 Export 成功后覆盖旧文件

权限:Import / Export / GetImportExportProgress / DeleteExportFile → ConfigMgmt(写);ListExportFiles / DownloadExportFile → ConfigMgmt(读)。

新增接口影响:与 Dump/LogService 严格分离;Web 配置页:导入、导出、进度条、按板文件列表及下载/删除按钮。


5.10 [AS-10] bmc.kepler.AggregationService.BootOption

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/SystemService(非独立 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/BootOptionService 路径)

BMC 参考bmc.kepler.Systems.BootOptions(属性 BootOrderBootSourceOverrideTargetBootSourceOverrideEnabledBootSourceOverrideMode;方法 SetBootOrderSetStartOptionSetStartOptionFlag

方法 请求参数 响应 说明
GetBootOptions TargetBoards: as(可选) SupportedBootDevices: as(可选);BoardBootOptions: a(BoardBootOption) 批量读各板优先引导介质启动顺序可设置启动项列表
SetBootOptions TargetBoards: as; BootSourceOverrideTarget: s; BootOrder: as; BootSourceOverrideEnabled: s; BootSourceOverrideMode: s(可选) Results: a(SetBootOptionResult) 批量设置多板启动项

GetBootOptions 响应语义

字段 类型 说明
SupportedBootDevices as 框级可设置启动项列表;框内各 BMC 一致时在此返回一次,UI 可直接用于下拉/校验
BoardBootOptions a(BoardBootOption) 各板当前配置;TargetBoards 省略时返回汇聚组全部成员板

可设置启动项列表(SupportedBootDevices)放置规则

场景 行为
框内各板 BMC 支持的启动项一致 顶层返回 SupportedBootDevices;各 BoardBootOption 省略 SupportedBootDevices
各板 BMC 支持的启动项不一致 省略顶层 SupportedBootDevices;在每条 BoardBootOption.SupportedBootDevices 中逐板返回

BoardBootOption 字段

字段 类型 说明
TargetBoard s 目标板 ID
BootSourceOverrideTarget s 当前优先引导介质,对齐 BMC BootSourceOverrideTarget
BootOrder as 当前启动顺序,对齐 BMC BootOrder
BootSourceOverrideEnabled s 当前生效方式:Disabled / Once / Continuous
BootSourceOverrideMode s 当前启动模式 Legacy / UEFI
SupportedBootDevices as 可选,该板可设置启动项;见上表放置规则
ResultCode i 查询结果码,0 成功

SetBootOptions 参数

参数 类型 说明
TargetBoards as 目标板列表,支持多板 fan-out
BootSourceOverrideTarget s 优先引导介质;汇聚层转发至 BMC SetStartOption(StartOption)
BootOrder as 启动顺序;汇聚层转发至 BMC SetBootOrder
BootSourceOverrideEnabled s 单次/永久有效Once 单次有效,Continuous 永久有效,Disabled 不覆盖优先介质;转发至 BMC SetStartOptionFlag(StartOptionFlag)
BootSourceOverrideMode s 可选,Legacy / UEFI;转发至 BMC SetBootMode

BootSourceOverrideEnabled 枚举Disabled, Once, Continuous(与 BMC BootSourceOverrideEnabled 语义一致)

SetBootOptionResult 字段:TargetBoard, ResultCode, ResultDetail

新增接口影响:框级启动项管理页一次拉取多板配置与可选列表;Set 支持多板并行下发,per-board 成功/失败经 Results 返回;字段命名与 BMC BootOptions 对齐。


5.11 [AS-11] bmc.kepler.AggregationService.AssetInventory

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService

WebREST/UI/Rest/Chassis/AggregationService/AssetInventory

BMC 参考bmc.kepler.Inventory.Hardware, Systems.Fru, Systems.Component

方法 请求 响应 说明
GetAssetInventory TargetBoards: as; AssetTypes: as Assets: a(AssetEntry) 批量获取资产清单

AssetEntry 字段:TargetBoard, AssetId, AssetType, AssetName, SerialNumber, PartNumber, Manufacturer, Model, Slot

子对象:单板对象见 AS-14 /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId}。其它资产类型仍以本接口 batch 方法为主。

新增接口影响:框级资产树数据源;类型含 Node, MgmtBoard, Fan, PSU, Chassis。


5.12 [AS-12] bmc.kepler.AggregationService.AssetHealth

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService

WebREST/UI/Rest/Chassis/AggregationService/AssetHealthStatus

命名:健康用 Status(如 GetHealthStatus、URI AssetHealthStatus),不用 State。State 用于运行态(如 PowerState)。对齐 openUBMC 命名规范

方法 请求 响应 说明
GetHealthStatus TargetIds: as HealthEntries: a(HealthEntry) 批量健康(TargetId = TargetBoard 或 AssetId)

HealthEntry 字段:TargetId, Health (y), HealthDetail (s)

子对象属性Health: U8(0 正常, 1 异常, 255 未知),对标 FruData.Overview.Health

新增接口影响:框级健康仪表盘;属性供订阅,方法供批量刷新。


5.13 [AS-13] bmc.kepler.AggregationService.Backplane

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService

WebREST/UI/Rest/Enclosure/Overview

用途:机框信息管理,支持背板信息管理。

评审状态:待评审

适用范围:机框/背板,非按 TargetBoards 的节点 BMC fan-out。

新增接口影响:Web 机框概览页走 /UI/Rest/Enclosure/Overview,底层调用同一 AssetService 对象上的 bmc.kepler.AggregationService.Backplane。与资产清单、健康状态同路径、不同接口。


5.14 [AS-14] bmc.kepler.AggregationService.Board

挂载路径/bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId}

WebREST:不提供。本评审点仅资源树接口(属性查询与 GetRedfishAccessInfo 均不对外暴露 WebREST)。

用途:资源树上按单板查询在位、板名、电源状态、ID;每个单板对象提供 Redfish 转发信息(鉴权 token 与目标 IP)。

评审状态:待评审

BMC 参考:在位/板名对标 FRU/Inventory;PowerState 对标 bmc.kepler.Systems.FruCtrl / Power;Redfish token 由汇聚层生成,非 BMC 持久属性。

属性 类型 读写 说明
Id String R 单板 ID(FRU/Slot,与路径 ${BoardId} 一致)
Presence String R 在位:Present / Absent
BoardName String R 板名
PowerState String R 电源状态,对齐 BMC PowerState(如 On / Off / Unknown
方法 请求 响应 说明
GetRedfishAccessInfo Token: s; TargetIp: s; ExpiresIn: u 获取该板 Redfish 转发信息:临时鉴权 token 与目标 IP;对象路径已标识单板,无需 TargetBoard 参数

是否准备好AI预审

(必选)是/否

评审结论

(必选)针对决策点,详细描述最终结论,不能是简单的同意或不同意,通过或不通过。(提交议题时删除此引导说明)

正面示例:
同意redfish接口/redfish/v1/XXXXX的GET操作响应体增加如下属性
(详细描述属性名称、属性取值类型、取值范围、约束等)

不同意新增资源协作接口XXXXX

不同意资源协作接口XXX新增XX属性/方法

反面示例:
通过,同意新增接口

遗留问题

(可选)列出评审会议现场无法直接给出明确结论的事务,会后确认清楚之后要在此处录入明确的结论,如不涉及,则可以写无或删除此部分。参考格式如下:(提交议题时删除此引导说明)
1、需要确认XXX
结论: