修复 ConsoleAuthTokens API

https://blueprints.launchpad.net/nova/+spec/fix-console-auth-tokens

当前的 ConsoleAuthTokens API 仅允许获取与 RDP 控制台对应的令牌的连接信息。我们需要此 API 也能适用于 MKS 令牌,以便实现一个独立的 MKS 代理。建议修改此 API 以适用于所有类型的令牌。

问题描述

独立的控制台代理需要此 API,但它仅限于 RDP。因此,无法在 Nova 树之外实现控制台代理。

用例

为所有协议提供 VM 控制台。

项目优先级

N/A

提议的变更

更改 ConsoleAuthTokens 的实现,以提供所有类型令牌(不仅仅是 RDP)的连接信息。

备选方案

另一种选择是将所有代理实现放在 Nova 代码库中。这由于很多原因行不通。

数据模型影响

REST API 影响

REST API 将保持不变,只有实现会被更改。就像在 console_auth_tokens.py 中删除以下 if 语句一样简单。

class ConsoleAuthTokensController(wsgi.Controller):
    def show(self, req, id):
        ...
        if console_type != "rdp-html5":
            raise webob.exc.HTTPUnauthorized()
        ...

然而,我们需要一个新的 API 微版本来区分旧行为,即对于非 RDP 令牌返回 HTTP 401。

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

rgerganov

工作项

它将在一个补丁中实现,该补丁修复 API 实现并更新微版本。

依赖项

测试

单元测试和功能测试。

文档影响

参考资料

历史