【已评审】 新增设置RTC时间资源协作接口和CLI接口

ISSUE链接(必填,此议题关联的issue):

【需求】支持RTC实时时钟设置和查询

背景(必填,文字描述议题背景,如需求来源、问题场景):

机柜管理板板载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