• publicize_image policy now has the same name both for image create and edit features and corresponds to the same one in Glance. If you changed the policy name manually to get feature working you have to rollback your changes before Horizon update.


  • An open redirect has been fixed, that could redirect users to arbitrary addresses from certain views by specifying a “next” parameter in the URL. Now the redirect will only work if the target URL is in the same domain, and uses the same protocol.


  • [bug:1859041] image:publicize_image policy is renamed to publicize_image to be the same as Glance has.



  • [bug:1746706] When reloading or opening Angular-based detail page directly, the navigation menu and breadcrumb list are not recovered properly and the first panel is focused. [bug:1746709] when we try to open non-existing Angular-based detail page, “Not Found” (404) page is not shown. A blank page only with the navigation menu will be shown.


  • [bug:1681627] A problem that Angular-based detail page (ngdetail page) cannot be reloaded or opened via direct URL has been fixed. Note that there are some known issues described in the Known Issues section.



  • Add support for horizon offering a clouds.yaml file for download along with the openrc files. For more information on clouds.yaml, see os-client-config documentation.

  • Added settings OPENSTACK_KEYSTONE_DOMAIN_DROPDOWN (boolean) and OPENSTACK_KEYSTONE_DOMAIN_CHOICES (tuple of tuples) to support a dropdown list of keystone domains to choose from at login. This should NOT be enabled for public clouds, as advertising enabled domains to unauthenticated users irresponsibly exposes private information. This is useful for private clouds that sit behind a corprate firewall and that have a small number of domains mapped to known corporate structures, such as an LDAP directory, Active Directory domains, geopgraphical regions or business units.

  • The virtio-forwarder VNIC type has been added to the list of valid types that may be set on a port. This requests a low-latency virtio port inside the instance, likely backed by hardware acceleration and requires a supporting Neutron mechanism driver.

  • The configuration documentation for supported_vnic_types in OPENSTACK_NEUTRON_NETWORK has been updated to help an operator decide which VNIC types should be available for users to choose from.

  • Added two charts to show the Number of Volumes and Total Volume Storage quotas on launch instance modal when cinder is enabled.

  • [blueprint network-bandwidth-limiting-qos] Add partial support for Network QoS policies. Since the panel is incomplete in Pike, it is disabled by default. It can be enabled in the file openstack_dashboard/enabled/_1510_project_network_qos_panel.py. When enabled, this panel allows users to view a list of created network policies. This panel displays a table view of the name, description and shared status of each policy. The details page for each policy also shows information on the associated rules.

  • Gives end-users the ability to create and delete ports in their networks. The functionality will be implemented into the project network details table. Following the discussions in the bug discussion. This functionality will be enabled/disabled via policy. Blueprint can be found at [blueprint network-ports-tenant] Bug can be found at [bug 1399252]

  • [blueprint neutron-trunk-ui] Add partial support for Neutron Trunks. Since the panel is incomplete in Pike, it is disabled by default. It can be enabled in the file ‘openstack_dashboard/enabled/_1500_project_trunks_panel.py’. After enabling it the Project/Network/Trunks panel turns on if Neutron API extension ‘trunk’ is available. It displays information about trunks. The details page for each trunk also shows information about subports of that trunk. Currently supported actions: delete.

  • [blueprint password-expires-validation] This blueprint provides a configurable setting to allow operators set the threshold days between the current date and the expiration date to show a message to warn users change their password prior the expiration date.

  • Most of the documentation has been reorganised and updated, or rewritten entirely, with the aim of promoting discoverability and ensuring all content is relevant and up to date.

  • Added a locked status column on admin/project instances table. It will show a locked or unlocked icon if nova API 2.9 or above is used. The locked status is also available on instance details panel.

  • Added a new create_volume setting under the LAUNCH_INSTANCE_DEFAULTS dict. This allows you to set the default value of “Create Volume” in “Launch Instance” form, when Cinder is available.

  • Added a new setting CREATE_IMAGE_DEFAULTS(dictionary) to configure the default options shown on create image modal. By default, the visibility option is public on create image modal. If image_visibility in this setting is set to "private", the default visibility option is private.

  • Added a new DEFAULT_SERVICE_REGIONS setting into local_settings.py. If a value of this is specified, it will be the default region to use when logging into the dashboard, instead of the value stored in cookies.

  • Now it is possible to enable/disable port security in Horizon, when the port-security extension is available. Note: Neutron allows disabling the port security on a port only when no security groups are associated to it

  • Panel group is introduced in the Admin dashboard to organize admin panels better. Panels in “System” group of Admin dashboard are now categorized into four groups: “Compute”, “Volume”, “Network” and “System”.

  • Security group association per port is now shown in the port detail page. In Neutron different security groups can be associated on different ports of a same server instance, but previously it cannot be referred in Horizon.

  • Securtiy group “Add rule” form now allows to specify ‘any’ IP protocol and ‘any’ port number (for TCP and UDP protocols). This feature is available when neutron is used as a networking back-end. You can specify ‘any’ IP protocol for ‘Other Protocol’ and -1 means ‘any’ IP protocol. You can also see All ports choice in ‘Open Port’ field in case of TCP or UDP protocol is selected.

  • Horizon workflow Step now support allowed() method to determine the step should be displayed conditionally. The workflow Step class already support policy check and permission mechanism to decide the step should be displayed, but allowed() is used to support more complex or dynamic condition.


  • Horizon is updated to use the same API policy target rules with Nova, if you made any changes to Horizon’s old nova policy file before, make sure to apply your specific policy changes to the new Nova policy file used by Horizon.

  • The profile_support setting has been removed from the OPENSTACK_NEUTRON_NETWORK dict, and any usages have been removed from the Horizon code base. If you were relying on this being set by default, you will now need to manually set the value in your plugin/customisation.

  • The ability to edit flavors is disabled by default. See ENABLE_FLAVOR_EDIT in the settings documentation for more information.

  • String attributes action_present and action_past were dropped from horizon.tables.BatchAction. action_present and action_past methods are the recommended way to define action labels for BatchAction. The offical way allows us to define more complete strings for action labels and this also allows translators to translate more flexibily.

  • [blueprint:drop-nova-network] Horizon nova-network floating IP and security groups supports have been dropped in Pike release. nova-network has been marked as deprecated in Nova in Newton release and horizon support was dropped in favor of it. Neutron now becomes a requirement for floating IP and security groups. Other operations on instances which created with nova-network should work same as before.

  • The settings enable_firewall and enable_vpn which have been deprecated since Juno release are now actually dropped. If you are using these settings to disable FWaaS v1 and VPNaaS dashboards, use REMOVE_PANEL of the Pluggable Panel mechanism to disable these panels. Note that Horizon checks the availability of FWaaS v1 and/or VPNaaS in your Neutron deploymennt and disables corresponding panels if not available, so in most cases you do not need to take care of the change.

  • FWaaS dashboard is now split out into a separate project neutron-fwaas-dashboard. All new features and maintenances are provided from the new project from now on. The new project provides all features available in Horizon in the past release. To continue to use FWaaS dashboard, install neutron-fwaas-dashboard and set up the horizon plugin configuration file in enabled directory. For more information, see neutron-fwaas-dashboard documentation.

  • [bug:1700325] Horizon now allows to override an embeded default plugin enabled file by specifying an enabled plguin file with a same filename. If there are plugin enabled files with a same name both in enabled and local/enabled directories, the file in local/enabled will be used and the file in enabled will be ignored now. Previously, both files are processed in the order of enabled and then local/enabled in this case, but this made operators difficult to change the order of panels from the default order.

    This is useful when you would like to disable some default panel. You can do it by specifying DISABLED = True in a plugin enabled file in local/enabled directory with a same name.

    This works in most cases, but there is a case where you need to be careful when upgrading horizon. If you use REMOVE_PANEL to remove some default panel by putting a plugin enabled file with a same name in local/enabled directory, you now need to use DISABLED = True or change the filename.

  • As a result of Admin dashboard reorganization, panel groups of many Admin panels have been changed. Operators who customize Admin panels (for example, disable some Admin panels) through enabled directory need to update panel groups in enabled files. Horizon plugin developers and deployers may also need to update panel configurations under enabled directory to adapt the new Admin menus.

  • OPENSTACK_ENDPOINT_TYPE setting now has a consistent default value and it defaults to publicURL. If you use the default value, previously (at least Ocata release) Horizon used internalURL for keystone and publicURL for other services. The default value is now publicURL, so if you want horizon to use internalURL to talk with back-end services, ensure to set OPENSTACK_ENDPOINT_TYPE to internalURL.

  • VPNaaS dashboard is now split out into a separate project neutron-vpnaas-dashboard. All new features and maintenances are provided from the new project from now on. The new project provides all features available in Horizon in the past release. To continue to use VPNaaS dashboard, install neutron-vpnaas-dashboard and set up the horizon plugin configuration file in enabled directory. For more information, see neutron-vpnaas-dashboard documentation http://git.openstack.org/cgit/openstack/neutron-vpnaas-dashboard/tree/doc/source


  • Editing flavors is deprecated and may be removed from the ‘R’ cycle onwards.


  • [bug:1564543] AVAILABLE_THEMES was used to determine whether a theme was selectable via the user facing widget, however it was noted that sometimes a parent theme is desired for inheritance, and needs to be hidden from the widget entirely. SELECTABLE_THEMES was added as a setting that can be used to collect a theme for inheritance, but hide it from the user’s view. See the settings documentation for usage specifics.

  • Unnecessary API calls to back-end services are eliminated when checking the quota and usage in individual panels. Each panel checks a resource can be created by retrieving the current quota and usage for the resource. However, the previous implementation retrieves quota and usage of unrelated resources (For example, Nova usage is retrieved when checking a network usage). It can be a performance problem in large deployments. This behavior is now fixed to load quota and usage only for resources which are really required.