ISSUE链接(必填,此议题关联的issue):
背景(必填,文字描述议题背景,如需求来源、问题场景):
机柜管理板板载RTC芯片时间支持设置,需要提供cli接口设置RTC芯片时间
评审点
一、资源协作接口新增设置RTC时间的接口
方案1:接口bmc.kepler.Managers.Time新增方法SetRtcTime
path:/bmc/kepler/Managers/:Id
interface:bmc.kepler.Managers.Time
变化类型:新增方法
方法名称:SetRtcTime
项 | 取值以及说明 |
---|---|
方法名称 | SetRtcTime |
方法描述 | 设置RTC时间,当前只支持CLI命令 |
方法权限 | BasicSetting |
请求签名 | ss |
请求参数 | Date:设置的目标日期 例"1900-01-01" Time:设置的目标时间 例"12:00:01" |
响应签名 | 无 |
响应参数 | 无,设置成功之后不会返回任何数据,设置失败之后会返回error引擎 |
方案2:接口bmc.kepler.Managers.Time的SetDateTime方法新增参数
path:/bmc/kepler/Managers/:Id
interface:bmc.kepler.Managers.Time
变化类型:方法参数变更
方法名称:SetDateTime
项 | 取值以及说明 |
---|---|
方法名称 | SetDateTime |
方法描述 | 设置BMC时间相关的属性 说明: 1、BMC管理的有些机型的时间只能从外部来(比如A+X),因此需要此接口进行设置时间 2、此接口设置的时间复位持久化,因此需要调用者进行周期性同步 3、如果被手动设置过的时间,则RTC时间不再同步;如果NTP同时开启,则NTP可以同步覆盖 4、新增设置RTC时间功能 |
方法权限 | BasicSetting |
请求签名 | a{ss} |
请求参数 | 设置BMC时间相关的一个或者多个属性: TimeZone:设置的时区,同时修改Offset和Name Timestamp:当前时间的时间戳 DSTEnable:是否是夏令时 RTCTime: 用于RTC芯片时间修改 |
响应签名 | 无 |
响应参数 | 无,设置成功之后不会返回任何数据,设置失败之后会返回error引擎 |
二、新增设置RTC时间的CLI接口
CLI命令:ipmcset -d time -v 1970-01-01 00:00:01
变化类型:新增命令字
操作类型:SET
操作权限:BasicSetting
命令描述:设置RTC时间命令
参数名称 | 取值类型 | 取值格式 | 是否可选 |
---|---|---|---|
Date | string | yyyy-mm-dd | 否 |
Time | string | hh:mm:ss | 否 |
评审结论
评审点1:同意在bmc.kepler.Managers.Time接口新增方法SetRtcTime,具体如下:
项 | 取值以及说明 |
---|---|
方法名称 | SetRtcTime |
方法描述 | 设置RTC时间,当前只支持CLI命令 |
方法权限 | BasicSetting |
请求签名 | t |
请求参数 | TimeStamp:时间戳(U64) |
响应签名 | 无 |
响应参数 | 无,设置成功之后不会返回任何数据,设置失败之后会返回错误消息 |
评审点2:同意新增命令行接口设置RTC时间,具体如下:
CLI命令:ipmcset -d time -v 1970-01-01 00:00:01
变化类型:新增命令字
操作类型:SET
操作权限:BasicSetting
命令描述:设置RTC时间命令
参数名称 | 取值类型 | 取值格式 | 是否可选 |
---|---|---|---|
Date | string | yyyy-mm-dd | 否 |
Time | string | hh:mm:ss | 否 |
## 回显格式
Usage: ipmcset -d time -v <date> <time>
date:date in yyyy-mm-dd format, e.g. 1970-01-01
time:time in hh:mm:ss format, e.g. 00:00:01
Example:
ipmcset -d time -v 1970-01-01 00:00:01
ipmcset -d time -v 2025-05-08 23:59:59