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 表示无错误) |
各能力扩展字段(写入 BoardTask 或 ResultPayload)
| 能力 | 扩展字段 | 说明 |
|---|---|---|
| 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),每项含 State、Percent、Result、Message 及能力相关 payload;整体含 TaskState、Percent、ResultSummary。
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.PowerControl;bmc.kepler.AggregationService.Power(可选) |
PowerCtrl、GetPowerState;GetPowerMetrics(可选) | bmc.kepler.Systems.FruCtrl / BMC Power 度量 |
多板 | AS-03、AS-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.Aggregate,bmc.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.BootOption,bmc.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.PowerControl,bmc.kepler.Object.Properties |
| AggregateAssetService | /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService |
bmc.kepler.AggregationService.AssetInventory,bmc.kepler.AggregationService.AssetHealth,bmc.kepler.AggregationService.Backplane |
| AggregateBoard | /bmc/kepler/AggregationService/Aggregates/${AggregateId}/AssetService/Boards/${BoardId} |
bmc.kepler.AggregationService.Board,bmc.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,不新增ExportFilesPath 对象。 -
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);导出成功板带 OutputFilePath、FileName |
| 查询哪些单板已有配置文件 | 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(属性 BootOrder、BootSourceOverrideTarget、BootSourceOverrideEnabled、BootSourceOverrideMode;方法 SetBootOrder、SetStartOption、SetStartOptionFlag)
| 方法 | 请求参数 | 响应 | 说明 |
|---|---|---|---|
| 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、URIAssetHealthStatus),不用 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
结论: