Essex 系列发布说明

发布概述

在 Essex 发布周期内,Horizon 经历了一系列重要的内部更改,以允许扩展性和定制化,同时还添加了大量新功能,并显著提高了与底层组件交互的稳定性。

亮点

可扩展性

为第三方开发者使 Horizon 具有可扩展性是 Essex 发布周期的一个核心目标。为了允许添加新的“插件”组件和定制 OpenStack Dashboard 部署,已经取得了巨大的进展。

为了支持这种可扩展性,用于构建 Horizon 界面的所有组件现在都是模块化的和可重用的。Horizon 自身的仪表盘使用这些组件,并且它们都是以第三方开发者为目标构建的。以下列出了一些主要组件。

仪表盘和面板

Horizon 的结构已被划分为称为仪表盘和面板的逻辑分组。Horizon 代表这些概念的类处理与构建完整用户界面(导航、访问控制、URL 结构等)相关的所有结构性问题。

数据表格

仪表盘用户界面中最常见的活动之一就是简单地显示资源或数据的列表,并允许用户对这些数据采取操作。为此,Horizon 将此任务的共性抽象成一组可重用的类,这些类允许开发者以最少的努力和零样板代码以编程方式为他们的数据创建显示和交互。

选项卡和选项卡组

另一个非常常见的用户界面元素是使用“选项卡”将离散的数据组分解为可管理的块。由于这些选项卡通常包含截然不同的数据,可能具有完全不同的访问限制,并且有时最好在初始页面加载时动态加载,而不是一起加载,Horizon 包含选项卡和选项卡组类,以便优雅地构建这些界面,而无需了解涉及的 HTML、CSS 或 JavaScript。

Nova 功能

Nova 的功能支持在 Essex 中得到了极大的改进

  • 支持 Nova 卷,包括

    • 卷的创建和管理。

    • 卷快照。

    • 处于转换状态的卷的实时 AJAX 更新。

  • 改进的 Nova 实例显示和交互,包括

    • 从卷启动实例。

    • 暂停/挂起实例。

    • 显示实例电源状态。

    • 处于转换状态的实例的实时 AJAX 更新。

  • 支持管理浮动 IP 地址池。

  • 新的实例和卷详细视图。

设置

添加了一个新的“设置”区域,该区域提供了一些有用的功能

  • EC2 凭据下载。

  • OpenStack RC 文件下载。

  • 用户语言偏好定制。

用户体验改进

  • 支持对多个资源执行批量操作(例如,一次终止多个实例)。

  • 整个 UI 中的模态交互。

  • 用于就地验证的 AJAX 表单提交。

  • 改进的表单上下文帮助(工具提示和验证消息)。

社区

  • 创建和发布一套人类界面指南 (HIG)。

  • 为开发者提供大量的文档。

底层

  • 完全启用国际化,所有字符串均已标记为可翻译。

  • 客户端库更改

    • 完全迁移到 python-novaclient,放弃了过时的 openstackx 库。

    • 迁移到 python-keystoneclient,放弃了 python-novaclient 库中过时的 keystone 部分。

  • 客户端模板功能,以便更轻松地创建动态交互。

  • 前端改造,使用 Bootstrap CSS/JS 框架。

  • 集中式错误处理,以极大地提高 API/客户端的稳定性和可靠性。

  • 完全重构的测试套件,并提供全面的测试数据。

  • 与 Django 1.4 的前向兼容性以及基于 cookie 的会话选项。

已知问题和限制

Quantum

Quantum 支持已从 Essex 版本的 Horizon 中移除。它将在 Folsom 中恢复,并与 Quantum 作为核心 OpenStack 项目的首次发布一起进行。

Keystone

由于 Keystone 确定用户“管理员”身份的机制,管理员用户与“项目”仪表盘交互时可能会看到一些不一致的行为,例如列出所有资源而不是仅属于该项目,或者只能在访问某些项目时返回“管理员”仪表盘。

定制期间的异常

通过“customization_module”设置覆盖内置 Horizon 行为时引发的异常可能会触发错误处理中的一个错误,从而掩盖原始异常。

向后兼容性

Essex Horizon 版本与 Diablo OpenStack 组件的向后兼容性仅为部分兼容。虽然可以登录和交互,但 Nova、Glance 和 Keystone 中的许多功能在 Essex 中发生了太大的变化,无法保持完全兼容性。