背景
新需求;支持双主机管理能力,需要将KVM/VMM特性按照不同主机独立管理。
基于此,需要在双主机场景下支持KVM/VMM功能。
关联ISSUE
需求: 支持Systems下的GraphicalConsole对象相关属性
相关议题-新增资源协作接口、webrest接口及配置项支持双主机场景KVM和VMM功能
评审点1:新增资源协作接口rpc方法
资源path: /bmc/kepler/Systems/:systemid/GraphicalConsole
资源interface: bmc.kepler.Systems.GraphicalConsole
变化类型:新增rpc方法
应用场景:用于使能图像通道
方法:
| 方法名称 | 变化类型 | 请求签名 | 请求参数说明 | 响应签名 | 响应参数说明 | 访问权限 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| EnableGraphicDisplay | 方法 | - | - | - | - | KVMMgmt | 使能图像通道 |
评审点2:webrest接口/UI/Rest/Services/KVM的GET操作响应体和PATCH操作请求体的GraphicalConsole属性下拓展属性
- 场景:新增/变更webrest接口
- URI:/UI/Rest/Services/KVM
- 变化类型:变更/新增属性
- 操作类型:GET/PATCH
- 应用场景:支持查询不同主机下KVM的会话类型,查询和设置不同主机下的虚拟键盘鼠标持续链接使能、系统自动锁定使能、系统锁定自定义快捷键和禁止BIOS启动阶段通过热键进入BIOS Setup菜单的能力
- 详细描述
| 属性名称 | 属性类型 | 说明 | 取值范围 | 默认值 | 操作权限 | 约束 |
|---|---|---|---|---|---|---|
| ActivatedSessionsType | string | KVM会话类型 | Shared:共享 Private:独占 null:暂无会话 |
null | GET:ReadOnly | - |
| PersistentUSBConnectionEnabled | boolean | 虚拟键盘、鼠标持续连接使能 | true或false | GET:ReadOnly PATCH:KVMMgmt |
- | |
| AutoOSLockEnabled | boolean | 系统自动锁定使能 | true或false | false | GET:ReadOnly PATCH:KVMMgmt |
- |
| AutoOSLockType | string | 系统自动锁定方式 | Custom:自定义 Windows:Windows锁定 |
Custom | GET:ReadOnly PATCH:KVMMgmt |
- |
| AutoOSLockKey | array | 系统锁定自定义快捷键 | - | - | GET:ReadOnly PATCH:KVMMgmt |
- |
| DisableKeyboardDuringBiosStartup | boolean | 禁止BIOS启动阶段通过热键进入BIOS Setup菜单 | true或false | false | GET:ReadOnly PATCH:KVMMgmt |
- |
| MaximumNumberOfSessions | integer | 最大会话 | - | 2 | GET:ReadOnly | - |
| NumberOfActiveSessions | integer | 活跃会话 | - | 0 | GET:ReadOnly | - |
样例:
{
...
"GraphicalConsole": [{
"SystemId": 1,
"Port": 2198,
"Enabled": true,
"ActivatedSessionsType": null,
"PersistentUSBConnectionEnabled": true,
"AutoOSLockEnabled": false,
"AutoOSLockType": "Custom",
"AutoOSLockKey": [""],
"DisableKeyboardDuringBiosStartup": false,
"MaximumNumberOfSessions": 2,
"NumberOfActiveSessions": 1
}]
}
评审点3:/UI/Rest/Services/VNC变更属性
详细描述
- 场景:新增/变更webrest接口
- URI:/UI/Rest/Services/VNC
- 变化类型:新增属性
- 操作类型:GET/PATCH
- 应用场景:BIOS启动时VNC禁用热键
- 详细描述
| 属性名称 | 属性类型 | 说明 | 取值范围 | 默认值 | 操作权限 | 约束 |
|---|---|---|---|---|---|---|
| VNCSettings [{ | array | VNC配置 | - | - | GET:ReadOnly;PATCH:KVMMgmt | - |
| SystemId | integer | 主机id | - | - | GET:ReadOnly | PATCH其他可修改属性时需要携带SystemId |
| DisableKeyboardDuringBiosStartup | boolean | BIOS启动时VNC禁用热键 | true或false | false | GET:ReadOnly;PATCH:KVMMgmt | - |
| MaximumNumberOfSessions | integer | 最大会话 | - | 5 | GET:ReadOnly | - |
| NumberOfActiveSessions | integer | 活跃会话 | - | 0 | GET:ReadOnly | - |
| }] |
响应体样例:
{
...
"VNCSettings": [
{
"SystemId": 1,
"DisableKeyboardDuringBiosStartup": true,
"MaximumNumberOfSessions": 5,
"NumberOfActiveSessions": 1
}
]
}
评审结论
1、同意资源协作接口在path(/bmc/kepler/Systems/:systemid/GraphicalConsole),interface(bmc.kepler.Systems.GraphicalConsole)下新增rpc方法EnableGraphicDisplay(参见评审点描述)
2、同意webrest接口/UI/Rest/Services/KVM的GET操作响应体和PATCH操作请求体的GraphicalConsole属性下拓展属性:ActivatedSessionsType属性,类型为string,废弃原同名属性;PersistentUSBConnectionEnabled属性,类型为boolean,废弃原同名属性;AutoOSLockEnabled属性,类型为boolean,废弃原同名属性;AutoOSLockType属性,类型为string,废弃原同名属性;AutoOSLockKey属性,类型为array,废弃原同名属性;DisableKeyboardDuringBiosStartup属性,类型为boolean,废弃原同名属性;MaximumNumberOfSessions属性,类型为boolean,废弃原同名属性;NumberOfActiveSessions属性,类型为boolean,废弃原同名属性(参见评审点描述)
3、同意webrest接口/UI/Rest/Services/VNC的GET操作响应体和PATCH操作请求体新增VNCSettings属性,类型为对象数组,子对象属性有:SystemId属性,类型为integer;DisableKeyboardDuringBiosStartup属性,类型为boolean,废弃原同名属性;MaximumNumberOfSessions属性,类型为boolean,废弃原同名属性;NumberOfActiveSessions属性,类型为boolean,废弃原同名属性(参见评审点描述)
兼容性要求
-
社区组件不能绑定配套指定版本的SDK,需做到向后兼容。
-
当前SDK继续维护原有资源协作接口,因此旧版本不支持双主机的社区组件可兼容新版本支持双主机的SDK;新版本社区组件需要通过映射器配置兼容旧版本无双主机资源协作接口的SDK。