【已评审】双主机场景支持KVM自定义资源信息

背景

新需求;支持双主机管理能力,需要将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,废弃原同名属性(参见评审点描述)

兼容性要求

  1. 社区组件不能绑定配套指定版本的SDK,需做到向后兼容。

  2. 当前SDK继续维护原有资源协作接口,因此旧版本不支持双主机的社区组件可兼容新版本支持双主机的SDK;新版本社区组件需要通过映射器配置兼容旧版本无双主机资源协作接口的SDK。