To better facilitate the building and publishing of sphinx documentation by Jenkins we are moving all openstack projects with sphinx documentation to a common doc tree structure. Documentation goes in project/doc and build results go in project/doc/build. Change-Id: Ic523a716e4113198b777d6dc3db8bb8a729e7696
5.2 KiB
Horizon 2012.1 "Essex"
Release Overview
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.
Highlights
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 extensability, 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.
Dashboards and Panels
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.).
Data Tables
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 encompasse 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 elegently and with no knowledge of the HTML, CSS or JavaScript involved.
Nova Features
Support for Nova's features has been greatly improved in Essex:
- Support for Nova volumes, including:
-
- Volumes creation and management.
- Volume snapshots.
- Realtime AJAX updating for volumes in transition states.
- Improved Nova instance display and interactions, including:
-
- Launching instances from volumes.
- Pausing/suspending instances.
- Displaying instance power states.
- Realtime AJAX updating for instances in transition states.
- Support for managing Floating IP address pools.
- New instance and volume detail views.
Settings
A new "Settings" area was added that offers several userful functions:
- EC2 credentials download.
- OpenStack RC file download.
- User language preference customization.
User Experience Improvements
- 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).
Community
- 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.
- Client library changes:
-
- 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.
Known Issues and Limitations
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.
Backwards Compatibility
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 compatibliity.