Horizon's new features introduced in Juno cycle

This post intends to give an overview on what happened during Horizon's Juno development cycle. Horizon's blueprints page on launchpad lists 31 implemented new features. They may be grouped into a few larger features.


Apache Hadoop is a widely adopted MapReduce implementation. The aim of the Sahara project is to enable users to easily provision and manage Hadoop clusters on OpenStack.

During the Juno development cycle, the independent Sahara dashboard was merged into Horizon. Like all other features in Horizon, it will be shown, when Sahara is configured through Keystone.


Horizon-2014.1 aka Icehouse version has support for RBAC for Glance and Cinder. For example, create, access, or delete images can be limited on user or role basis. In Juno this RBAC system was extended to support compute, network, and orchestration.

JavaScript unbundling

In the past, there were quite a few JavaScript libraries copied into Horizon's code. Benefit is, they are available directly in Horizon and developers are in control of them. On the other side, if there is a security flaw in any of those bundled files, Horizon devs are in charge to fix it. Many Linux distributions have a rule not to use such bundled code at all, for example Fedora. As result of this feature, all bundled libraries were removed from Horizon, and system provided libraries will be used through python-XStatic.

Horizon was originally intended as a framework to enable the development of a dashboard, like the now well known OpenStack Dashboard, which is widely known under the name Horizon.

However, the Horizon framework is generic and could be used by other projects outside of OpenStack. It is useful to build a dashboard based on RESTful services. There is a blueprint described on launchpad, to separate horizon from openstack dashboard. To enable this feature, JavaScript libraries need to become separate as well.

Look and feel improvements

There are quite a few blueprints striving to improve look and feel. For example, bootstrap was updated to version 3, the color palette was centralized. The tablesorter plugin gained a feature to sort by timestamp. Those features make it easier to customize Horizon for individual needs.

Even more

A few patches were added to enable to store metadata, like in cinder or glance, where users can register key/pair values to describe their cloud deployment. Another set of patches implements features for Neutron, like supporting IPv6 and Neutron subnets.