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: String
Type: 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: String
EffectiveHours: 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: Boolean
DurationMins: 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_]*$ 任务资源标识,用于北向任务资源查询和管理。由任务创建者指定,需要保证任务资源标识唯一。默认值为空字符串,表示无效的任务资源标识