Newton 系列发布说明

10.0.2

错误修复

  • [bug 1618235] 用户现在可以删除输入搜索框中键入的所有字符,而不会导致选定的方面消失,即使删除了最后一个字符。

  • [bug 1635505] Horizon 现在可以正确地在输入搜索框中使用箭头键,而不会触发新的文本搜索,从而刷新下方表格的内容。

其他说明

  • 菜单会随着用户添加更多方面而跟随搜索输入框的位置

10.0.1

升级说明

  • 开发者启用的文件已从 openstack_dashboard/enabled 移动到 openstack_dashboard/contrib/developer/enabled。要启用它们,请复制到 openstack_dashboard/local/enabled 并设置 DEBUG = True

错误修复

  • 日志中将不再出现关于开发者面板的 WARNING 消息。

10.0.0

序言

Angular 操作现在应该返回一个 promise,该 promise 会解析为一个结构化的对象,以指示操作执行了什么(或未执行什么)。

JavaScript 现在可以访问 Keystone Token。

Horizon 的许多 XStatic 包在此周期内已更新。

资源类型(例如 Images)的详细信息页面现在可以使用 Angular 应用程序级注册表来注册视图,以便开发者可以轻松创建或扩展详细信息视图。在此实现中,这些视图将作为详细信息页面内的选项卡呈现。

为了标准化我们的 HTML 类命名约定,我们将更新各种类名以使用连字符,而不是下划线或驼峰命名法,以匹配 Bootstrap 的约定。

Horizon 不再需要 Nova(或 Glance)才能运行;只要 keystone 存在(例如,仅 swift 部署),它就可以运行。

Images 面板现在可以配置为使用旧版或 Angular 代码。

为了帮助 Horizon 作为可主题化和可定制的框架进行持续维护,高度定制的“默认”样式正在被标准 Bootstrap 样式取代。 “默认”主题今后将仅包含 scss 变量更改。

Angular 组件现在存在,可以提供易于配置的面板和表格,基于有关资源的注册表信息(例如,Instances)。

模态框大小现在继承自 Bootstrap 的主题变量。

我们现在自动确定 Horizon 使用的 xstatic 包的静态文件夹位置。

新特性

  • 一个 action-result 服务提供了方便的方法来构建结果,以及解析已解析的对象

  • [blueprint admin-neutron-l3-agent] 添加了对管理 neutron L3 agent 主机的支持。系统信息管理屏幕现在提供链接/视图,以查看哪些路由器驻留在哪些主机上。 此外,路由器的管理视图还提供了一个列表,显示路由器托管的位置以及指向查看共享相同主机的其他路由器的链接。

  • Horizon 和 Horizon 插件可以从 JavaScript 访问 Keystone Token,以便它们可以直接对其他 OpenStack 服务进行 CORS 调用。 这可以实现更响应迅速的 UI。

  • 添加了一个新的 ANGULAR FEATURES 字典到设置中。 这允许简单地切换新的 AngularJS 功能。

  • 将 Scheduler Hints 选项卡添加到新的启动实例工作流中,以便在启动实例时添加调度器提示。 除了添加自定义键值对之外,用户还可以从 glance 元数据定义目录中选择具有 OS::Nova::Server 资源类型和 scheduler_hints 属性的目标属性。

  • 添加了对 angular 工作流服务的设置支持,以便工作流中的每个步骤都可以指定一个布尔设置,该设置必须通过才能显示该步骤。

  • [blueprint admin-views-filter-first] 此蓝图提供了一个可配置的设置,允许操作员要求管理员在将数据加载到管理视图之前提供搜索条件。

  • [blueprint angular-table-directive] 此蓝图提供了一种方法,供开发者以编程方式声明 Angular 表格,而不是编写 HTML 标记。 它减少了样板 HTML 代码。 对于基本表格,您需要将数据和列配置传递到 hz-dynamic-table 指令中。

  • [blueprint angular-template-overrides] 此蓝图提供了一种方法,供部署者使用主题来覆盖 Angular 代码中使用的 HTML 片段。 例如,要覆盖使用“material”主题时启动实例帮助面板,请创建 openstack_dashboard/themes/material/static/templates/framework /widgets/help-panel/help-panel.html。 所有客户端模板现在都编译成一个 JavaScript 文件,该文件被最小化并作为 manifest.json 文件中的附加文件提供。

  • [blueprint cinder-consistency-groups] 此功能将 2 个新选项卡添加到项目卷面板。 第一个选项卡将显示一致性组,第二个选项卡将显示一致性组快照。 一致性组 (CG) 包含现有的卷,并允许用户以一步对卷执行操作。 操作包括:创建/更新/删除 CG,快照 CG 中的所有卷,克隆 CG 中的所有卷,以及从 CG 快照创建新的 CG 和卷。 与一致性组关联的策略存在于 Cinder 策略文件中,默认情况下,所有操作均已禁用。

  • [blueprint configurable-boot-sources] 允许管理员通过在 LAUNCH_INSTANCE_DEFAULTS 中添加 4 个新设置来限制在启动实例模态框中可用的启动源 (disable_image, disable_instance_snapshot, disable_volume, disable_volume_snapshot)。

  • 从本地文件创建功能已添加到 Angular 和 Django 创建镜像工作流中。 它以“旧版”模式工作,该模式通过 Django 代理镜像上传,或者以新的“直接”模式工作,该模式反过来实现 [blueprint horizon-glance-large-image-upload]。 要使用直接模式,应将 HORIZON_IMAGES_UPLOAD_MODE 设置更改为“direct”值,并更改 glance-api.conf cors.allowed_origin 参数为 Horizon 服务所在的 URL。

  • 添加了能够使用附加细节渲染 angular 行操作的功能,这些细节解释了操作的目的。 这些被渲染为图块,旨在描绘用户可能希望对给定资源采取的下一步骤。

  • 端口详细信息页面有一个新的选项卡,用于管理允许的地址对。 此选项卡及其功能仅在 Neutron 中激活此扩展时可用。 允许的地址对选项卡将启用创建、删除和列出当前端口的地址对。

  • 支持在创建端口时指定子网或固定 IP 地址。

  • 一个指令 (hz-details) 提供了智能显示一组视图的能力(通常用于详细信息上下文)。

  • 一个通用的详细信息显示解析位置以确定资源类型,并显示该类型相关的详细信息视图。

  • 一个 Descriptor 概念允许方便地传递可以全局标识对象的信息,用于通用视图和操作。

  • Horizon 现在有一个(非导航)Django 路由,因此通用的详细信息页面可以进行深度链接。

  • 现在可以使用任何 Angular 页面共享的 Django 模板。

  • 添加了对 Glance v2 的完整支持,因此 Horizon 不再依赖于 Keystone 目录中存在的 Glance v1 端点。 还提供了 Glance v1 和 v2 之间的代码兼容性。

  • 添加了一个新的配置值 IMAGES_ALLOW_LOCATION,允许用户在创建或更新镜像时设置位置。 根据 Glance 版本,设置位置的能力由策略和/或配置值控制。

  • Nova 和 Glance 不再是运行 Horizon 的必需条件。 只要 keystone 存在,Horizon 就可以正常运行。

  • 如果将 ANGULAR_FEATURES 选项中的“images_panel”设置为 False(这不是默认设置),并且配置 Horizon 使用 Glance v2,则 Ramdisk ID 和 Kernel ID 在“编辑镜像”屏幕上无法正确显示。

  • 图像功能的集成测试也可以在 openstack_dashboard/test/integration_tests/horizon.conf 中使用“panel_type”功能进行切换,设置为“legacy”或“angular”以匹配启用的面板类型。

  • Horizon 支持网络 IP 可用性功能。 启用 Horizon 管理网络仪表板能够显示 IP 可用性。 启用管理网络子网表中的 2 列,以显示给定子网中分配的 IP 和每个子网中未分配的空闲 IP。

  • 现在支持 Neutron 网络类型用于 Geneve 隧道协议。

  • 现在支持 Neutron 提供商网络类型用于 Midonet。 要启用它们,请在配置文件中的 supported_provider_types 中指定这些网络类型。

  • Neutron 提供商网络配置现在更加灵活,因此操作员可以根据他们使用的 neutron 网络后端配置各种提供商网络参数,包括新的网络类型、segmenatiton ID 范围等。

  • 添加了一个新的设置 INTEGRATION_TESTS_SUPPORT,默认值为 False。 此值用于运行 manage.py compress 命令时,默认情况下,所有静态资源和集成测试使用的 html 类都从 Horizon 生产构建中删除。 集成测试门作业将此变量设置为 True 并重新压缩静态资源。

  • hz-resource-table 指令接收 Heat 资源名称(例如“OS::Nova::Server”),并使用 Angular 注册表提供操作、列和摘要视图。

  • hz-resource-panel 指令接收 Heat 资源名称(例如“OS::Nova::Server”),并显示适当的标题,并允许将内容转译以构建面板页面。

  • 添加了一个新的设置 OVERVIEW_DAYS_RANGE。 它定义了概述面板仪表中的默认日期范围 - 要么今天减去 N 天(如果值为整数 N),要么从当月的第一天到今天(如果设置为 None)。 此设置用于限制在渲染概述面板时默认获取的数据量。 默认值为 1,这与过去的 behavior 不同,因为它会导致大型部署出现严重的滞后。

  • 模态框大小现在继承自主题变量。 现在,Horizon 中可用的两种额外大小是 Bootstrap 模态框的标准 3 种大小,modal-xs 和 modal-xl。

  • 添加了 TOKEN_DELETE_DISABLED 设置,以便部署者可以自定义用户在注销时撤销令牌。

已知问题

  • 如果您将 ANGULAR_FEATURES 选项中的“images_panel”设置为 False(这不是默认设置),并配置 Horizon 使用 Glance v2,则 Ramdisk ID 和 Kernel ID 在“编辑镜像”屏幕上无法正确显示。

升级说明

  • 虽然这不是必需的,但最好使您的操作返回具有预期结构的 promise。

  • 在 Django 1.10 下,Django OpenStack Auth 的 User 类中的 is_authenticated()is_anonymous() 函数是属性,不再接受 margin 参数。

  • Horizon 当前支持 Angular 1.3.x 和 Angular 1.4.x,但将来将删除对 1.3 的支持。 请参阅 从 1.3 迁移到 1.4

  • 详细信息页面内的面包屑导航现在适用于整个 Horizon。 逻辑中的一个小变化意味着上下文中 custom_breadcrumb 项目不再需要指定面板名称和链接。 请参阅 [blueprint navigation-improvements]

  • 最终的 django TEMPLATE_LOADERS 配置现在将从 TEMPLATE_LOADERS、CACHED_TEMPLATE_LOADERS 和 ADD_TEMPLATE_LOADERS 设置生成。 有关更多信息,请参阅设置文档。

  • 不再需要将版本后缀包含到 OPENSTACK_KEYSTONE_URL 设置中。 感谢 django-openstack-auth 库的最新更新,版本为 2.3.0,Horizon 将根据 OPENSTACK_API_VERSIONS[‘identity’] 设置中存储的值将适当的版本后缀附加到 URL。

  • (可选) 使用通用的 Angular 模板作为任何 Angular 页面的基础,以最大程度地减少样板代码并确保我们使用类似的功能/框架。

  • 必须将 OPENSTACK_IMAGE_FORMATS 变量添加到 local_settings.py 中的 REST_API_REQUIRED_SETTINGS 设置中。

  • 如果仍然需要“default”主题才能使遗留覆盖生效,只需将“default”主题中的样式复制到现有主题或创建一个新的自定义主题即可。

  • 表格行类 status_unknown 已被默认 bootstrap warning 类替换。

  • 许多 Javascript 文件已移动到 horizon/lib static 文件夹中的新位置。 之前某些文件的位置是硬编码的,但现在位置是根据 xstatic 包名称自动确定的。

弃用说明

  • HORIZON_IMAGES_ALLOW_UPLOAD 设置已被弃用,应逐步替换为 HORIZON_IMAGES_UPLOAD_MODE 设置。

  • 路由器规则是 Big Switch Networks 提供的 horizon 扩展。 作为 horizon-vendor-split 工作的一部分,我们从上游 horizon 中删除了该扩展。 现在它作为单独的插件提供,地址为 https://github.com/bigswitch/horizon-bsn

  • LBaaS v1 仪表板现已弃用,将在 Ocata 版本中删除。 LBaaS v1 功能已从 Ocata 中的 neutron-lbaas 中删除,Horizon 中的此功能仅用于向后兼容,以便操作员可以先升级 Horizon。 请注意,通过 neutron-lbaas-dashboard 项目 提供对 LBaaS v2 的仪表板支持,作为 Horizon 插件。

  • HTML 类 ‘d3_pie_chart_usage’ 的所有实例都替换为 ‘pie-chart-usage’。HTML 类 ‘d3_pie_chart_distribution’ 的所有实例都替换为 ‘pie-chart-distribution’。

  • ‘default_ipv4_subnet_pool_label’ 和 ‘default_ipv6_subnet_pool_label’ 选项在 Mitaka 版本中已被弃用,并且在 Newton 版本中不再有效。 从 Mitaka 开始,您可以通过 Neutron API 为每个地址族创建一个默认子网池。 这些子网池将自动显示在子网池列表中,使用池的名称作为标签。

  • Horizon 表格的内联编辑功能现已弃用,将在 Horizon P (12.0) 中删除。 该功能已从以下表格中删除:Admin Volume Types 表格、Admin Metadata Definitions 表格、Identity Projects 表格和 Identity Users 表格。

  • 全屏模态框已被弃用,转而支持 modal-xl。 当前设置为可见屏幕宽度的 95%。

安全问题

  • 将 Keystone Token 提供给 JavaScript 会略微增加 Token 被捕获的风险。 如果您不需要此功能,可以通过在 local_settings 中设置以下选项来禁用它:ENABLE_CLIENT_TOKEN = False

错误修复

  • 面板中的硬编码管理员角色已替换为 RBAC 策略检查。 现在用户访问面板由策略定义,而不是用户角色。 该更改影响了 Admin 仪表板及其面板(概述、Hypervisors、Instances 和 Metadata Definitions)。

  • 已修复 LP-1585682,该问题赋予了 Horizon 能够正确版本化 Keystone webpath 端点(URL,如 http://<hostip>/identity 而不是 http://<hostip>:5000)。

其他说明

  • XStatic-Angular 从 1.3.7.0 更新到 1.4.10.1

  • XStatic-Angular-FileUpload 从 1.4.0.1 更新到 12.0.4.0

  • XStatic-Bootstrap-SCSS 从 3.2.0.0 更新到 3.3.7.0

  • XStatic-Bootswatch 从 3.3.5.3 更新到 3.3.6.0

  • XStatic-Font-Awesome 从 4.3.0.0 更新到 4.5.0.0

  • XStatic-Jasmine 从 2.1.2.0 更新到 2.4.1.1

  • XStatic-MDI 从 1.1.70.1 更新到 1.4.57.0

  • XStatic-Rickshaw 从 1.5.0.0 更新到 1.5.1.0

  • XStatic-Smart-Table 从 1.4.5.3 更新到 1.4.13.1

  • Glance v2 不支持从复制功能,因此在使用 Glance v2 时,Horizon 中会禁用此功能。