libmcpp 资源协作接口 API
本文档以 libmcpp 生产源码中通过 MC_INTERFACE 和 MC_REFLECT 实际暴露的接口能力为准。接口、属性、方法、类型和读写权限来自 libmcpp;匹配的 mdb_interface 定义用于补充说明、取值范围和复杂类型字段。实现与标准定义不一致的内容在一致性比较报告中呈现。
- 属性读写:根据 libmcpp 反射只读标记生成 RO、RW 或 NA
- 取值范围和说明:取自匹配的 mdb_interface 定义;无定义时为 NA
接口概览
| 接口名 | libmcpp 类 | 实现位置 | 标准接口 | MDB 定义位置 |
|---|---|---|---|---|
bmc.kepler.CmdInfo |
ipmi_cmd_info_interface |
libraries/mcapp/include/mc/app/ipmi_cmd.h |
是 | json/intf/mdb/bmc/kepler/CmdInfo.json |
bmc.kepler.MicroComponent |
micro_component_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/MicroComponent.json |
bmc.kepler.MicroComponent.ConfigManage |
mc_config_manage_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/MicroComponent/ConfigManage.json |
bmc.kepler.MicroComponent.Debug |
mc_debug_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/MicroComponent/Debug.json |
bmc.kepler.MicroComponent.Performance |
mc_performance_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/MicroComponent/Performance.json |
bmc.kepler.MicroComponent.Reboot |
mc_reboot_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/MicroComponent/Reboot.json |
bmc.kepler.MicroComponent.Reset |
mc_reset_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/MicroComponent/Reset.json |
bmc.kepler.Monitor |
MonitorInterface |
libraries/mcapp/include/mc/app/monitor/monitor_interface.h |
否 | NA |
bmc.kepler.Release.Maintenance |
mc_maintenance_interface |
libraries/mcapp/include/mc/app/micro_component.h |
是 | json/intf/mdb/bmc/kepler/Release/Maintenance.json |
bmc.kepler.TaskService.Task |
TaskInterface |
libraries/mcapp/include/mc/app/task/task_interface.h |
是 | json/intf/mdb/bmc/kepler/TaskService/Task.json |
bmc.kepler.CmdInfo
- libmcpp 类:
ipmi_cmd_info_interface - 实现位置:
libraries/mcapp/include/mc/app/ipmi_cmd.h - MDB 定义:
json/intf/mdb/bmc/kepler/CmdInfo.json
属性
| 属性名 | 类型 | 读写 | 取值范围 | 说明 |
|---|---|---|---|---|
| NetFn | U8 | RO | NA | IPMI网络字节功能码 |
| Cmd | U8 | RO | NA | IPMI命令字 |
| Filter | String | RO | NA | 用于匹配IPMI命令数据,生成路由表 |
| Privilege | S16 | RO | NA | IPMI命令的访问权限 |
| Priority | S16 | RO | NA | 命令优先级,当存在相同命令时,选择优先级高的执行 |
| ServiceName | String | RO | NA | 命令对应的服务名 |
| SysLockedPolicy | String | RO | NA | 系统锁定属性 |
| Sensitive | Boolean | RO | NA | ipmi命令是否包含敏感信息 |
| Manufacturer | S32[] | RO | NA | Manufacturer字段在IPMI请求帧或响应帧中的偏移。数组第一个元素表示请求偏移,第二个元素表示响应偏移;不存在Manufacturer字段时默认值为[-1, -1]。该字段通过组件MDS模型定义,主要应用在IPMI命令场景 |
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| Process | Data: U8[]Context: U8[] |
Response: U8[] |
处理IPMI请求,并返回响应 |
Process
处理IPMI请求,并返回响应
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Data | U8[] | NA | NA | 请求数据 |
| Context | U8[] | NA | NA | 请求上下文的json字符串,包括通道类型、会话信息、客户端信息 |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Response | U8[] | NA | NA | 响应数据 |
bmc.kepler.MicroComponent
- libmcpp 类:
micro_component_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/MicroComponent.json
属性
| 属性名 | 类型 | 读写 | 取值范围 | 说明 |
|---|---|---|---|---|
| Pid | S32 | RO | NA | 组件pid |
| Author | String | RO | NA | 组件作者 |
| Description | String | RO | NA | 组件的描述信息 |
| License | String | RO | NA | 组件证书 |
| Name | String | RO | NA | 组件名称 |
| Status | String | RO | NA | 组件状态 |
| Version | String | RO | NA | 组件版本号 |
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| HealthCheck | NA | Status: S32 |
检查组件健康状态的接口 |
HealthCheck
检查组件健康状态的接口
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Status | S32 | NA | NA | 返回组件健康状态结果,正常返回0,检查失败后立即重启返回-2,其它异常情况返回-1 |
bmc.kepler.MicroComponent.ConfigManage
- libmcpp 类:
mc_config_manage_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/MicroComponent/ConfigManage.json
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| Backup | FilePath: String |
List: Array |
配置文件备份 |
| Export | Type: String |
Data: String |
根据请求参数导出组件配置数据 |
| Import | Data: StringType: String |
NA | 根据请求参数导入组件配置数据 |
| Recover | PreserveList: Dictionary |
NA | 配置文件还原 |
| Verify | Data: String |
Result: String |
校验组件自定义定制化结果 |
| GetPreservedConfig | PreserveFlag: Dictionary |
PreserveData: String |
获取还原时需要保留的配置信息 |
| GetTrustedConfig | NA | Configuration: String |
获取供应链相关组件安全配置信息json字符串 |
Backup
配置文件备份
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| FilePath | String | NA | NA | 配置文件打包路径 |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| List | Array | Items | NA | 导出的配置文件名称、路径列表 |
复杂类型 Items(结构)
| 字段名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| FileName | String | NA | NA | NA |
| OriginPath | String | NA | NA | NA |
Export
根据请求参数导出组件配置数据
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Type | String | NA | custom、configuration | custom: 业务导出; configuration: 定制导出 |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Data | String | NA | NA | 组件配置数据(json字符串形式) |
Import
根据请求参数导入组件配置数据
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Data | String | NA | NA | 组件配置数据(json字符串形式) |
| Type | String | NA | custom、configuration | custom: 业务导入; configuration: 定制导入 |
Recover
配置文件还原
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| PreserveList | Dictionary | Object | NA | 保留日志的列表 |
复杂类型 Object(结构)
| 字段名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| key | String | NA | NA | NA |
| value | String | NA | NA | NA |
Verify
校验组件自定义定制化结果
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Data | String | NA | NA | 组件配置数据(json字符串形式) |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Result | String | NA | NA | 组件自定义校验结果(json字符串形式) |
GetPreservedConfig
获取还原时需要保留的配置信息
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| PreserveFlag | Dictionary | Preserve | NA | 保留配置标志,用于标识需要保留哪些配置信息 |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| PreserveData | String | NA | NA | 保留配置数据json字符串 |
复杂类型 Preserve(结构)
| 字段名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| PreserveKey | String | NA | NA | NA |
| PreserveValue | String | NA | NA | NA |
GetTrustedConfig
获取供应链相关组件安全配置信息json字符串
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Configuration | String | NA | NA | 供应链相关组件安全配置信息json字符串 |
bmc.kepler.MicroComponent.Debug
- libmcpp 类:
mc_debug_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/MicroComponent/Debug.json
属性
| 属性名 | 类型 | 读写 | 取值范围 | 说明 |
|---|---|---|---|---|
| DlogLevel | String | RO | NA | 组件的日志等级 |
| DlogType | String | RW | NA | 组件的日志类型 |
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| AttachDebugConsole | Port: U32 |
NA | 使mdbctl和业务组件建立连接 |
| DetachDebugConsole | NA | NA | 使mdbctl和业务组件断开连接 |
| Dump | FilePath: String |
NA | 用于导出组件日志到指定路径 |
| SetDlogLevel | Level: StringEffectiveHours: U8 |
NA | 设置组件的日志级别(生效时长是以小时为单位,范围是1-24,作用是在修改的日志级别小于默认级别时,在到生效时长后,改回默认级别) |
AttachDebugConsole
使mdbctl和业务组件建立连接
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Port | U32 | NA | NA | mdbctl分配的端口号 |
DetachDebugConsole
使mdbctl和业务组件断开连接
Dump
用于导出组件日志到指定路径
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| FilePath | String | NA | NA | 日志文件导出的路径 |
SetDlogLevel
设置组件的日志级别(生效时长是以小时为单位,范围是1-24,作用是在修改的日志级别小于默认级别时,在到生效时长后,改回默认级别)
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Level | String | NA | NA | 设置的日志级别 |
| EffectiveHours | U8 | NA | NA | 日志级别,生效时长 |
bmc.kepler.MicroComponent.Performance
- libmcpp 类:
mc_performance_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/MicroComponent/Performance.json
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| StartProfiling | Duration: U32 |
NA | 开始统计组件的signal接收,rpc调用信息 |
StartProfiling
开始统计组件的signal接收,rpc调用信息
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Duration | U32 | NA | NA | 统计时长 |
bmc.kepler.MicroComponent.Reboot
- libmcpp 类:
mc_reboot_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/MicroComponent/Reboot.json
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| Prepare | NA | Result: S32 |
用于业务组件进行重启前准备操作,要求操作耗时短、可恢复,例如检测是否可以复位、数据落盘 |
| Process | NA | Result: S32 |
用于业务组件进行重启前处理操作,支持耗时较长、不可回滚、依赖其它组件的处理操作,例如CPLD生效 |
| Action | NA | Result: S32 |
用于业务组件进行重启执行操作,支持耗时适中、不可回滚、不依赖其它组件的操作,例如资源回收、停止服务、数据落盘 |
| Cancel | NA | NA | 取消重启 |
Prepare
用于业务组件进行重启前准备操作,要求操作耗时短、可恢复,例如检测是否可以复位、数据落盘
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Result | S32 | NA | NA | 返回业务组件重启前准备结果, SUCCESS(0),FAIL(-1) |
Process
用于业务组件进行重启前处理操作,支持耗时较长、不可回滚、依赖其它组件的处理操作,例如CPLD生效
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Result | S32 | NA | NA | 返回业务组件重启前处理结果, SUCCESS(0),FAIL(-1) |
Action
用于业务组件进行重启执行操作,支持耗时适中、不可回滚、不依赖其它组件的操作,例如资源回收、停止服务、数据落盘
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Result | S32 | NA | NA | 返回业务组件重启执行结果, SUCCESS(0),FAIL(-1) |
Cancel
取消重启
bmc.kepler.MicroComponent.Reset
- libmcpp 类:
mc_reset_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/MicroComponent/Reset.json
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| Prepare | ResetType: String |
Result: S32 |
用于组件重置准备 |
| Action | ResetType: String |
Result: S32 |
执行组件重置 |
| Cancel | ResetType: String |
NA | 取消重置 |
Prepare
用于组件重置准备
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| ResetType | String | NA | NA | 重置类型。取值范围:WarmReset |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Result | S32 | NA | NA | 返回组件重置准备结果,0 代表 SUCCESS, -1 代表 FAIL |
Action
执行组件重置
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| ResetType | String | NA | NA | 重置类型。取值范围:WarmReset |
返回值
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Result | S32 | NA | NA | 返回组件重置执行结果,0 代表 SUCCESS, -1 代表 FAIL |
Cancel
取消重置
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| ResetType | String | NA | NA | 重置类型。取值范围:WarmReset |
bmc.kepler.Monitor
- libmcpp 类:
MonitorInterface - 实现位置:
libraries/mcapp/include/mc/app/monitor/monitor_interface.h - MDB 定义:NA(非标准接口)
属性
| 属性名 | 类型 | 读写 | 取值范围 | 说明 |
|---|---|---|---|---|
| Value | Double | RO | NA | NA(MDB 未定义) |
| PeriodMs | U32 | RO | NA | NA(MDB 未定义) |
bmc.kepler.Release.Maintenance
- libmcpp 类:
mc_maintenance_interface - 实现位置:
libraries/mcapp/include/mc/app/micro_component.h - MDB 定义:
json/intf/mdb/bmc/kepler/Release/Maintenance.json
方法
| 方法名 | 入参 | 返回值 | 说明 |
|---|---|---|---|
| DlogLimit | Enabled: BooleanDurationMins: U32 |
NA | 设置组件日志限流状态 |
DlogLimit
设置组件日志限流状态
入参
| 参数名 | 类型 | 引用类型 | 取值范围 | 说明 |
|---|---|---|---|---|
| Enabled | Boolean | NA | NA | 日志限流使能,true代表限流,false代表不限流 |
| DurationMins | U32 | NA | [1, 720] | 设置日志限流状态生效时长[1-720]min |
bmc.kepler.TaskService.Task
- libmcpp 类:
TaskInterface - 实现位置:
libraries/mcapp/include/mc/app/task/task_interface.h - MDB 定义:
json/intf/mdb/bmc/kepler/TaskService/Task.json
属性
| 属性名 | 类型 | 读写 | 取值范围 | 说明 |
|---|---|---|---|---|
| Id | U32 | RO | NA | 任务id |
| Name | String | RO | NA | 任务名称 |
| StartTime | String | RO | NA | 任务开始时间 |
| EndTime | String | RO | NA | 任务结束时间 |
| MessageId | String | RO | NA | 消息id |
| MessageArgs | String[] | RO | NA | 消息参数 |
| Parameters | String | RO | NA | 消息参数说明 |
| Status | String | RO | OK、Warning、Major、Critical | 任务的级别 |
| Progress | U32 | RO | NA | 任务进度 |
| State | String | RO | New、Starting、Running、Suspended、Interrupted、Pending、Stopping、Completed、Killed、Exception、Service、Cancelled | 任务的状态 |
| EstimatedDuration | U32 | RO | NA | 预估任务完成所需的总时间,单位为秒。在任务进行期间,该值预计不会变化;但如果服务获取到显著改变预估完成时间的新信号,则可以更新该值。 |
| Stage | String | RO | NA | 任务阶段,由执行任务的服务设置,默认为空字符串 |
| Description | String | RO | NA | 任务的描述信息,由执行任务的服务设置,默认为空字符串 |
| ParentId | U32 | RO | NA | 父任务Id。默认值为0,表示没有父任务 |
| TaskId | String | RO | 正则 ^[a-zA-Z][a-zA-Z0-9_]*$ |
任务资源标识,用于北向任务资源查询和管理。由任务创建者指定,需要保证任务资源标识唯一。默认值为空字符串,表示无效的任务资源标识 |