【已评审】支持redfish接口返回kvm web链接

评审背景

某客户对KVM的使用有特殊诉求:
1、使用redfish接口获取KVM访问链接,且返回的KVM访问链接中token字段要求仅用于KVM访问KVM场景(不能用于其他鉴权场景);
2、redfish接口支持设置KVM会话类型(共享、独占)

当前现状

1、当前使用URL直连KVM 需要通过用户名密码鉴权,客户要求KVM链接使用专用的token进行鉴权,当前实现不满足客户要求
2、当前只支持在创建KVM会话时选择会话类型,客户要求先设置KVM会话类型,然后创建出的KVM连接即为之前设置的会话类型,当前实现不满足客户要求

需要针对客户要求进行处理,计划新增资源协作接口实现

触发原因

新需求

决策点

决策点一 支持使用redfish接口获取KVM访问链接

原有KVM URL直连需要通过用户名密码鉴权,不满足客户诉求。计划提供资源协作接口方法进行实现

资源协作路径:/bmc/{customer}/Managers/:Id/GraphicalConsole(新增)
资源协作接口:bmc.{customer}.Managers.GraphicalConsole(新增)
方法:GetKVMToken(新增)
详细描述

方法名称 变化类型 req签名 请求参数说明 响应参数类型 响应参数说明 执行权限 备注
GetKVMToken 新增方法 s Credential:通用鉴权凭据,比如用户通过SessionService创建,携带在接口请求头中的X-Auth-Token s KVMToken:KVM链接token KVMMgmt 获取KVM token方法

决策点二 支持设置KVM会话类型

设置该属性之后,通过redfish接口查询的KVM直连URL,使用该URL建立的KVM会话时会根据属性值建立对应类型的会话

资源协作路径:/bmc/{customer}/Managers/:Id/GraphicalConsole(新增)
资源协作接口:bmc.{customer}.Managers.GraphicalConsole(新增)
属性:KVMSessionMode(新增)
详细描述

属性名称 变化类型 签名 读写权限 持久化 默认值 变化通知 属性说明 属性约束
KVMSessionMode 新增属性 y 读写
read:ReadOnly
write:KVMMgmt
掉电持久化 0 false KVM会话类型 取值:
0:共享模式
1:独占模式

评审结论

同意新增如下资源协作接口,方法和属性:

新增path:/bmc/{customer}/Managers/:Id/GraphicalConsole
新增interface:bmc.{customer}.Managers.GraphicalConsole
新增方法

方法名称 变化类型 req签名 请求参数说明 响应参数类型 响应参数说明 执行权限 备注
GetKVMToken 新增方法 s Credential:通用鉴权凭据,比如用户通过SessionService创建,携带在接口请求头中的X-Auth-Token s KVMToken:KVM链接token KVMMgmt 获取KVM token方法

新增属性

属性名称 变化类型 签名 读写权限 持久化 默认值 变化通知 属性说明 属性约束
KVMSessionMode 新增属性 y 读写
read:ReadOnly
write:KVMMgmt
掉电持久化 0 false KVM会话类型 取值:
0:共享模式
1:独占模式