【已评审】新增资源协作接口方法ImportGroupKeyAsync

关联issue

评审背景

现状:
Redfish支持远程导入NTP组密钥,NTP组秘钥导入的资源协作接口方法没有返回值,是通过错误引擎直接抛错导入结果
问题:
远程导入在文件传输处耗时较大,超过30s没有响应,需要以Task的形式返回

在历史版本BMC中,存在仅远程传输涉及Task的情况,例如ImportCertImportWeakPasswordDictionaryExportWeakPasswordDictionary
响应体中存在参数 TaskId,仅远程上传涉及
如果是远程传输,则返回TaskId,如果是本地传输,则无返回值

评审点

目前,已有资源协作接口方法ImportGroupKey可以导入NTP组密钥,但无响应体。

方案一
修改原有方法ImportGroupKey响应体

  • 资源路径 :/bmc/kepler/Managers/:id
  • 资源接口:bmc.kepler.Managers.Ntp.Auth
  • 方法 :ImportGroupKey
  • 权限 :BasicSetting
  • 请求签名 : s
  • 请求参数 :
    • FilePath:上传密钥的路径
  • 响应签名 : u32
  • 响应参数
    • TaskId:远程上传秘钥的任务Id

方案二
新增方法ImportGroupKeyAsync

  • 资源路径 :/bmc/kepler/Managers/:id
  • 资源接口:bmc.kepler.Managers.Ntp.Auth
  • 方法 :ImportGroupKeyAsync
  • 权限 :BasicSetting
  • 请求签名 : s
  • 请求参数 :
    • FilePath:上传密钥的路径
  • 响应签名 : u
  • 响应参数
    • TaskId:远程上传秘钥的任务Id

评审结论

通过,同意采用方案二,在资源协作接口下 bmc.kepler.Managers.Ntp.Auth 新增方法 ImportGroupKeyAsync,权限为 BasicSetting,请求签名为 s,响应签名为 u;方法用于异步的方式导入NTP GroupKey,并且返回异步任务的 TaskId

  1. 在评审背景中补充历史BMC版本中对于这种情况的支持情况
  2. 能否考虑直接修改 ImportGroupKey 的响应进行处理,如果是 local 的则返回0,如果是 remote 的就返回 TaskId

已补充