【已评审】固件管理生效接口新增可控生效方法

关联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

  1. 方法怎么只有请求签名,对应的响应没有?以及新增接口的权限需要明确
  2. 两个方法采用两个方案单独列举,清晰展示优缺点