背景
为了实现节能控制,需要支持开启调压能力,关闭调压能力,以及设置输出电压能力。
关联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、请求签名需要有对应的参数名称
已修改。