关联issue
评审背景
对于固件生效的管理,由于部分固件(如CPLD)的生效存在AC而打断业务的高危操作,所以期望生效接口能够灵活选择性生效某些当前影响可接受的固件,比如:能够选择性生效“只复位BMC”的固件 或 “只需要DC的固件” 或 “生效所有固件”等
评审点
FirmwareActive资源的生效管理接口新增一个方法
path :/bmc/kepler/UpdateService/FirmwareActive
interface :bmc.kepler.UpdateService.FirmwareActive
| A | 方法名称 | 权限 | 参数签名 | 返回值 | 参数说明 | 参数可选项含义说明 | 优点 | 缺点 |
|---|---|---|---|---|---|---|---|---|
| 方案一 | StartActiveByControlType | BasicSetting | ias | (u):TaskId | (i)SystemId:多主机场景下生效指定host。 (as):固件生效扩展参数字符串列表,用于固件生效管理的各场景处理。如:[“ResetBMC”]表示复位BMC生效对应的固件;[“PowerOff”]表示下电生效对应的固件等 | "ResetBMC"只生效BMC、CSR这一类固件 "PowerOff"只生效VRD这一类下电生效但不AC的固件。 [“ResetBMC”, “PowerOff”]生效所有固件,包括需要下电、复位BMC、AC的固件,同[“ResetAC”] | 1、参数签名"as"与redfish生效接口的定义一致 | 1、生效方式与“自动下电生效”的历史生效行为不一致,实现上也不易兼容 2、后续不易扩展新的生效方式 |
| 方案二 | StartActiveWithPolicy | BasicSetting | ia{ss} | (u):TaskId | (i)SystemId:多主机场景下生效指定host。 (a{ss}):固件生效扩展参数字典,用于固件生效管理的各场景处理。如{ActivationControl = ControlType} | "ResetBMC"表示触发一次复位BMC,只生效BMC、CSR这一类固件。 "PowerOff"只生效VRD这一类下电生效但不AC的固件。“ResetAC”表示触发一次AC去生效所有固件 | a{ss}扩展性更强,后续用户特殊的生效要求(如:选定待生效列表的几个固件生效;生效指定槽位的固件或fru),可以方便扩展,不用修改再接口 | a{ss}一个参数可以包含多种含义,单个参数不符合单一性原则 |
| 方案三 | StartActiveByControlType | BasicSetting | is | (u):TaskId | (i)SystemId:多主机场景下生效指定host。 (s):固件生效扩展参数字符串,用于固件生效管理的各场景处理。如:“ResetBMC”表示复位BMC生效对应的固件;“PowerOff”表示下电生效对应的固件等 | "ResetBMC"只生效BMC、CSR这一类固件 "PowerOff"只生效VRD这一类下电生效但不AC的固件。“ResetAC”生效所有固件,包括需要下电、复位BMC、AC的固件。 | 参数类型简单,使用简单 | 不易扩展 |
评审结论
通过,采用方案二,同意在 bmc.kepler.UpdateService.FirmwareActive 接口下新增方法 StartActiveWithPolicy,请求签名:ia{ss},响应签名:u, 权限:BasicSetting