Essex 시리즈 릴리즈 노트

릴리즈 개요

During the Essex release cycle, Horizon underwent a significant set of internal changes to allow extensibility and customization while also adding a significant number of new features and bringing much greater stability to every interaction with the underlying components.

핵심

Extensibility

Making Horizon extensible for third-party developers was one of the core goals for the Essex release cycle. Massive strides have been made to allow for the addition of new “plug-in” components and customization of OpenStack Dashboard deployments.

To support this extensibility, all the components used to build on Horizon’s interface are now modular and reusable. Horizon’s own dashboards use these components, and they have all been built with third-party developers in mind. Some of the main components are listed below.

대시보드와 패널

Horizon’s structure has been divided into logical groupings called dashboards and panels. Horizon’s classes representing these concepts handle all the structural concerns associated with building a complete user interface (navigation, access control, url structure, etc.).

데이터 테이블

One of the most common activities in a dashboard user interface is simply displaying a list of resources or data and allowing the user to take actions on that data. To this end, Horizon abstracted the commonalities of this task into a reusable set of classes which allow developers to programmatically create displays and interactions for their data with minimal effort and zero boilerplate.

Tabs and TabGroups

Another extremely common user-interface element is the use of “tabs” to break down discrete groups of data into manageable chunks. Since these tabs often encompass vastly different data, may have completely different access restrictions, and may sometimes be better-off being loaded dynamically rather than with the initial page load, Horizon includes tab and tab group classes for constructing these interfaces elegantly and with no knowledge of the HTML, CSS or JavaScript involved.

Nova 기능

Support for Nova’s features has been greatly improved in Essex:

  • Support for Nova volumes, including:

    • 볼륨 생성과 관리

    • 볼륨 스냅샷

    • Realtime AJAX updating for volumes in transition states.

  • Improved Nova instance display and interactions, including:

    • 볼륨에서 인스턴스 시작.

    • Pausing/suspending instances.

    • Displaying instance power states.

    • Realtime AJAX updating for instances in transition states.

  • Support for managing Floating IP address pools.

  • 새로운 인스턴스와 볼륨 자세히 보기.

설정

A new “Settings” area was added that offers several useful functions:

  • EC2 인증서 내려받기.

  • OpenStack RC file 내려받기.

  • User language preference customization.

사용자 경험 향상

  • Support for batch actions on multiple resources (e.g. terminating multiple instances at once).

  • Modal interactions throughout the entire UI.

  • AJAX form submission for in-place validation.

  • Improved in-context help for forms (tooltips and validation messages).

커뮤니티

  • Creation and publication of a set of Human Interface Guidelines (HIG).

  • Copious amounts of documentation for developers.

Under The Hood

  • Internationalization fully enabled, with all strings marked for translation.

  • 클라이언트 라이브러리 변경:

    • Full migration to python-novaclient from the deprecated openstackx library.

    • Migration to python-keystoneclient from the deprecated keystone portion of the python-novaclient library.

  • Client-side templating capabilities for more easily creating dynamic interactions.

  • Frontend overhaul to use the Bootstrap CSS/JS framework.

  • Centralized error handling for vastly improved stability/reliability across APIs/clients.

  • Completely revamped test suite with comprehensive test data.

  • Forward-compatibility with Django 1.4 and the option of cookie-based sessions.

알려진 이슈와 제한사항

Quantum

Quantum support has been removed from Horizon for the Essex release. It will be restored in Folsom in conjunction with Quantum’s first release as a core OpenStack project.

Keystone

Due to the mechanisms by which Keystone determines “admin”-ness for a user, an admin user interacting with the “Project” dashboard may see some inconsistent behavior such as all resources being listed instead of only those belonging to that project, or only being able to return to the “Admin” dashboard while accessing certain projects.

Exceptions during customization

Exceptions raised while overriding built-in Horizon behavior via the “customization_module” setting may trigger a bug in the error handling which will mask the original exception.

하위 호환성

The Essex Horizon release is only partially backwards-compatible with Diablo OpenStack components. While it is largely possible to log in and interact, many functions in Nova, Glance and Keystone changed too substantially in Essex to maintain full compatibility.