【已评审】支持新增电源调压接口

背景

为了实现节能控制,需要支持开启调压能力,关闭调压能力,以及设置输出电压能力。

关联ISSUE

[需求]: 支持新增电源调压接口 - openUBMC/power_mgmt - AtomGit | GitCode

整体方案

支持OnePower对象开启和关闭调压能力,以及设置电源输出电压。

方案一:
新增OutputVoltageAdjustmentEnabled和TargetOutputVoltage两个可读写的属性。通过OutputVoltageAdjustmentEnabled属性开启和关闭电源电压设置能力,通过TargetOutputVoltage属性设置电源电压。

方案二:
1、新增OutputVoltageAdjustmentEnabled和TargetOutputVoltage两个只读属性,OutputVoltageAdjustmentEnabled属性用于表示当前是否开启和关闭电源电压设置能力,TargetOutputVoltage属性用于表示调压的目标输出电压。
2、新增SetOutputVoltageAdjustmentEnabled和SetTargetOutputVoltage方法,分别用于设置开启和关闭电源电压设置能力、设置目标输出电压。

方案分析

方案名称 新增属性 新增方法 优点 缺点 变更影响
方案一 OutputVoltageAdjustmentEnabled、TargetOutputVoltage 通过属性设置电压,不需要新增方法 1、组件业务逻辑会刷新这个值,外部调用也会设置这个值,需要同时进行维护
2、设置失败时需要恢复属性值,实现较复杂
不影响现有功能
方案二 OutputVoltageAdjustmentEnabled、TargetOutputVoltage SetOutputVoltageAdjustmentEnabled、SetTargetOutputVoltage 1、通过新增方法设置电源,属性用于显示当前的值,逻辑上更清晰
2、与同接口下的OutputPowerLimitWatts属性和SetOutputPowerLimitWatts方法保持一致
需要新增方法 不影响现有功能

评审点:变更资源协作接口bmc.kepler.Chassis.PowerSubsystem.PowerSupply.OutputControl

方案一:

变更描述: 新增属性用于设置电源调压使能及设置电源目标输出电压。
接口链接: bmc.kepler.Chassis.PowerSubsystem.PowerSupply.OutputControl
变化类型: 新增属性

变更类型 属性名称 签名 只读 变化通知 属性描述 默认值 访问权限 属性来源 持久化类型 变更影响
新增属性 OutputVoltageAdjustmentEnabled b False true 电源调压能力使能状态,true:开启输出电压调节,false:关闭输出电压调节 false Read: ReadOnly Write: PowerMgmt 电源寄存器和用户设置 不影响现有功能
新增属性 TargetOutputVoltage d False true 需要设置的目标输出电压 0.00 Read: ReadOnly Write: PowerMgmt 电源寄存器和用户设置 不影响现有功能

方案二:

变更描述 :新增属性和方法用于设置电源调压使能及设置电源目标输出电压。
接口链接: bmc.kepler.Chassis.PowerSubsystem.PowerSupply.OutputControl
变化类型: 新增属性和方法

新增属性

变更类型 属性名称 签名 只读 变化通知 属性描述 默认值 访问权限 属性来源 持久化类型 变更影响
新增属性 OutputVoltageAdjustmentEnabled b True true 电源调压能力使能状态,true:输出电压调节开启,false:输出电压调节关闭 false Read: ReadOnly 通过电源管理协议从电源读取后更新 不影响现有功能
新增属性 TargetOutputVoltage d True true 设置的目标输出电压 0.00 Read: ReadOnly 通过电源管理协议从电源读取后更新 不影响现有功能

新增方法

变更类型 方法名称 请求签名 请求参数描述 响应签名 响应参数描述 方法描述 访问权限
新增方法 SetOutputVoltageAdjustmentEnabled b OutputVoltageAdjustmentEnabled: 电源调压能力使能状态,true:开启输出电压调节,false:关闭输出电压调节 设置电源调压能力使能 PowerMgmt
新增方法 SetTargetOutputVoltage d TargetOutputVoltage: 需要设置的目标输出电压 设置电源目标输出电压 PowerMgmt

评审结论

同意在bmc.kepler.Chassis.PowerSubsystem.PowerSupply.OutputControl接口新增如下属性和方法

属性名称 签名 只读 变化通知 访问权限 持久化类型
OutputVoltageAdjustmentEnabled b True true Read: ReadOnly 不持久化
TargetOutputVoltage d True true Read: ReadOnly 不持久化
方法名称 请求签名 响应签名 访问权限 说明
SetOutputVoltageAdjustmentEnabled b PowerMgmt 设置电源调压能力使能状态
SetTargetOutputVoltage d PowerMgmt 设置电源目标输出电压

遗留问题

1、电源调压使能状态属性的命名需要再确认一下
确认VoltageRegulationEnabled语义上不够清晰,参考redfish接口中的类似定义,改为了OutputVoltageAdjustmentEnabled。
2、属性TargetOutputVoltage英文名称和描述要保持一致
已修改,描述统一使用目标输出电压。
3、需要考虑未来类似功能的扩展性,是否应该用结构体或其他格式
属性值来源于电源,与其他参数不一样,使用通用的格式成本太高,暂不考虑扩展性。
4、表格文字格式不要使用斜体
已去掉斜体。
5、SetOutputPowerLimitWatts的描述不准确,提交代码时需要同步修改
提交代码时同步修改SetOutputPowerLimitWatts的描述。
6、请求签名需要有对应的参数名称
已修改。