=====================
Horizon 2014.2 "Juno"
=====================

Release Overview
================

The Juno release cycle brings a significant update to the user experience;
numerous stability improvements; support for Sahara; and significant
enhancements in feature support for networking, volumes, databases and images.
The community continues to grow and gain speed. Read on for more details.

Highlights
==========

New Features
------------

Sahara
~~~~~~

The OpenStack Data Processing project (Sahara) was formally included into the
integrated release in Juno and Horizon includes broad support for managing your
data processing. You can specify and build clusters to utilize several data
types with user specified jobs while tracking the progress of those jobs.

Neutron
~~~~~~~

Neutron added several new features in Juno, including:

* DVR (Distributed Virtual Routing)
* L3 HA support
* IPv6 subnet modes

Horizon provides support for these new features with the Juno release. These
features provide much greater flexibility in specifying software defined
networks.

An existing feature in Neutron that Horizon now supports is the MAC learning
extension.

Glance
~~~~~~

In Juno, Glance introduced the ability to manage a catalog of metadata
definitions where users can register the metadata definitions to be used on
various resource types including images, volumes, aggregates, and flavors.
Support for viewing and editing the assignment of these metadata tags is
included in Horizon.

Cinder
~~~~~~

In a continued effort to provide more complete API support, several
additional features of the Cinder API are now supported in Horizon in the
Juno release.

Some of these features include:
* Creating and restoring volume backups
* Enabling resetting the state of a snapshot
* Enabling resetting the state of a volume
* Supporting upload-to-image
* Volume retype
* QoS (quality of service) support.

Trove
~~~~~

Trove supports using multiple types of datastores, e.g., mysql, redis, mongodb.
Users can now select from the list of datastores supported by the cloud operator
when creating their database instances.

Another addition is support for utilizing and restoring from incremental
database backups.

To improve support for Neutron based clouds, when creating a database instance,
the user can now specify the NIC for the database instance on creation allowing
direct access to the instance by the user.

Nova
~~~~

The new Nova instance actions view provides a list of all actions taken on
all instances in the current project allowing users to view resulting errors or
actions taken by other users on those instances.

Administrators now have the ability to evacuate hosts off hypervisors which can
aid in system maintenance by providing a mechanism to migrate all instances to
other hosts.

Improved Plugin Support
~~~~~~~~~~~~~~~~~~~~~~~

The plugin system in Horizon continued to improve in the Juno release.
Some of those improvements:

* Support for adding plugin specific AngularJS modules
* Support for adding static files, e.g., CSS, JS, images
* Ability to add exceptions
* Fixing ordering issues
* Numerous other bug fixes

Enhanced RBAC support
~~~~~~~~~~~~~~~~~~~~~

In an ongoing effort to support richer role based access control (RBAC) in
Horizon, the views for several more services were enhanced with RBAC checks to
determine user access to actions.  The newly supported services are compute,
network and orchestration. These changes allow operators to implement finer
grained access control than just "member" and "admin".

The identity panels (domains, projects, users, roles, groups) have also been
converted to support RBAC at the view level. The identity panels have been
moved from the admin dashboard into their own 'Identity' dashboard and
accessibility is determined by policies alone. This is the first step toward
consolidating the near duplicate content of the project and admin dashboards
into single views supporting a wide range of roles.

UX Changes
~~~~~~~~~~

In Juno, Horizon transitioned to utilizing Bootstrap v3. Horizon had been
pinned to an older version of Bootstrap for several releases. This change now
allows Horizon to pick up numerous bug fixes and overall improvements in the
Bootstrap framework. The look and feel remains mainly consistent with the
Icehouse release.

Under the Hood
--------------

Improved Translatability
~~~~~~~~~~~~~~~~~~~~~~~~

In an effort to improve the translations for Horizon, updates to remove
concatenations and better handle tense were made.

JavaScript Libraries Extracted
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

As part of the Horizon team's ongoing efforts to split the repository into more
logical pieces, all the 3rd party JavaScript libraries that Horizon depends on
have been removed from the Horizon code base and python xstatic packages have
been utilized instead. The xstatic format allows for easy consumption by the
Django framework Horizon is built on. Now JavaScript libraries are utilized
like any other python dependency in Horizon.

Conversion from LESS to SCSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The supported stylesheets in Horizon have been converted to utilize SCSS rather
than LESS. The change was necessary due to a prevalent lack of support for LESS
compilers in python. This change also allowed us to upgrade to Bootstrap 3, as
parts of the Bootstrap 3 LESS stylesheets were not supported by existing python
based LESS compilers.

Known Issues and Limitations
============================

Rendering issues in extensions
------------------------------
The conversion to utilizing Bootstrap v3 can cause content extensions written
on top of Horizon to have rendering issues. Most of these are fixed by a simple
CSS class name substitutions. These issues are primarily seen with buttons and
panel content widths.

Online Compression
------------------
With the move to SCSS, there may be issues with utilizing online compression in
non-DEBUG mode in Horizon. Offline compression continues to work as in previous
releases.

https://bugs.launchpad.net/horizon/+bug/1379761

Neutron L3 HA
-------------
The HA property is updateable in the UI, however, Neutron API does not allow the
update operation because toggling HA support does not work.

https://bugs.launchpad.net/horizon/+bug/1379761
