关联issue
评审背景
对于固件生效的管理,由于部分固件(如CPLD)的生效存在AC而打断业务的高危操作,所以期望生效接口能够灵活选择性生效某些当前影响可接受的固件,比如:能够选择性生效“只复位BMC”的固件 或 “只需要DC的固件” 或 “生效所有固件”等
评审点
FirmwareActive资源的生效管理接口新增一个参数
path:/bmc/kepler/UpdateService/FirmwareActive
interface:bmc.kepler.UpdateService.FirmwareActive
评审点1
方法名称 | 原签名 | 扩展后签名 | 新增参数名称 | 新增签名 | 新增参数说明 | 参数选项含义说明 | 优点 | 缺点 | |
---|---|---|---|---|---|---|---|---|---|
方案一 | StartActive | i | ia{ss} | ActivationControl | a{ss} | 固件生效扩展参数字典,用于固件生效管理的各场景处理。如{ActiveMode = “ResetBMC”},表示生效“生效动作是复位BMC”对应的固件;{ActiveCondition = PowerOff}表示生效“生效条件是下电”对应的固件 | "ResetBMC"表示触发一次复位BMC,只生效BMC、CSR这一类固件。 "PowerOff"表示触发一次下电,如果存在CPLD固件,则生效后会发生AC,AC后会导致复位BMC的固件同时生效 | 1、与web界面展示的待生效固件一致,可以生效对应“生效条件”的固件,也可以生效对应生效动作的固件 2、与当前生效管理设计一致,把固件的生效抽象出“生效条件”和“生效模式”两个属性,便于与之前的自动生效实现保持一致 3、a{ss}扩展性更强,后续用户特殊的生效要求(如:选定待生效列表的几个固件生效),可以方便扩展,不用修改再接口 | 1、参数含义带有误导性,PowerOff参数,如果生效了CPLD,会触发AC,带着BMC固件也生效了 2、a{ss}一个参数可以包含多种含义,单个参数不符合单一性原则 |
方案二 | StartActive | i | ias | ActivationControl | as | 固件生效扩展参数字符串列表,用于固件生效管理的各场景处理。如:[“ResetBMC”]表示复位BMC生效对应的固件;[“PowerOff”]表示下电生效对应的固件 | "ResetBMC"只生效BMC、CSR这一类固件 "PowerOff"只生效VRD这一类下电生效但不AC的固件。 [“ResetBMC”, “PowerOff”]生效所有固件,包括需要下电、复位BMC、AC的固件 | 1、参数签名"as"与redfish生效接口的定义一致 | 1、每一个参数选项都要详细说明会生效哪些固件,否则可能造成用户误解 2、生效方式与“自动下电生效”的历史生效行为不一致,实现上也不易兼容 3、后续不易扩展新的生效方式 |
评审结论
不通过,需要整体并行方案评审之后再行评审