Mitaka Series Release Notes¶
Cinder defines storage size in gibibytes (GiB), which is inconsistent with Horizon panels that show/request storage size in gigabytes (GB).
- Added the Metadata tab to the new Launch Instance workflow to allow adding key-value metadata to an instance at launch. This includes any properties from the OS::Nova::Server namespace of the glance metadata definitions.
- Allows to attach ports during instance launch <https://blueprints.launchpad.net/horizon/+spec/allow-launching-ports>
- [blueprint angular-performance-strict-di] This blueprint enforces strict dependency injection in AngularJS code, for improvements to minification and thus performance.
- Move OpenStack Dashboard Swift panel rendering logic to client-side using AngularJS for significant usability improvements.
- Added the Developer dashboard plugin to contrib. This runs when
DEBUG=True, and adds tooling to the UI to aid in development.
- Added the Bootstrap Theme Preview panel to the Developer dashboard. This panel contains a list of Bootstrap components with source code, so that developers can see examples of how to structure this code and the effects their theme will have upon it.
- Added the Django template cached loader, so templates are stored in memory. See https://docs.djangoproject.com/en/1.8/ref/templates/api/#django.template.loaders.cached.Loader
- [blueprint cinder-consistency-groups] This feature adds a new Consistency Groups tab to the Project Volumes panel. Consistency Groups (GG) contain existing volumes, and allow the user to perform actions on the volumes in one step. Actions include: create a CG, manage volumes associated with the CG, update a CG, and delete a CGs. Note that a CG can not be deleted if it contains any volumes.
- Instance metadata can be updated (https://blueprints.launchpad.net/horizon/+spec/edit-server-metadata)
- Made the Angular Launch Instance workflow the default in Horizon.
- [blueprint integrate-magic-search] Magic Search was an external dependency that was being heavily modified or overwritten in sections, so the used parts of code base have been moved into Horizon.
- [blueprint integration-tests-hardening] This blueprint reduced failures in the integration tests caused by structure or styling changes, by making them less dependent on aspects of page structure, such as ordering or CSS classes.
- Added the Update Encryption action for encrypted volume types.
- [blueprint keystone-federation-protocol-mapping] This blueprint provides CRUD interaction for identity provider protocols.
- Allow to override settings from local_settings.py with file snippets dropped into local_settings.d/ directory.
- [blueprint pagination-for-flavor] Added forward and backward pagination to the Flavors panel
- Added support for managing domains and projects when using Keystone v3. Horizon now maintains a domain scoped token for users who have a role on a domain, a project scoped token for users who have a role on a project, or both a domain scoped token and project scoped token for users who have roles on both.
- Domain management supports the following use cases:
- Cloud Admin - View and manage identity resources across domains
- Domain Admin - View and manage identity resources in the domain logged in
- User - View identity project in the domain logged in
- Horizon can be configured to run with multiple themes available at run time. A new selection widget is available through the user menu. It uses a browser cookie to allow users to toggle between the configured themes. By default, Horizon is configured with the two themes available, ‘default’ and ‘material’.
- Selenium tests may now be exercised using the headless PhantomJS driver.
- Added the angular extensible service which allows angular horizon elements such as workflows, tables, actions, and forms to be extended dynamically by adding, removing, or replacing items. The extensible service is applied to every workflow created using the horizon workflow service. This includes the angular Launch Instance workflow.
- All Volume related panels in Horizon that previously used the term “GB” and “gigabyte” have been replaced with ‘GiB’ and ‘gibibyte’.
- [blueprint keystone-federation-idp] Add support for managing keystone identity provider. To enable the panel, set
OPENSTACK_KEYSTONE_FEDERATION_MANAGEMENTin the local_settting.py to True.
- [blueprint keystone-federation-mapping] Add basic support for managing keystone federation mapping.
- Added the LAUNCH_INSTANCE_DEFAULTS setting which allows specifying default values for the Launch Instance workflow. Initially only the Configuration Drive property is supported.
- [blueprint message-of-the-day] Message of the day can now be configured in horizon, this will be displayed to the user whenever they login. To enable the feature set
MESSAGES_PATHin the local_settting.py to the directory where message files are located. The message file must have a .json file extension.
- Added policy support to the angular workflow service so each step in a workflow can specify a policy check that must pass in order for the step to be displayed.
- There are also some Nova related panels (e.g. “Instances”) that reference storage size in “GB”. These panels will be addressed in subsequent patches.
- All AngularJS code must use explicit dependency injection. See https://docs.angularjs.org/guide/di#using-strict-dependency-injection
- Custom template tags must have a thread-safe Node implementation to work with the the cached loader. See https://docs.djangoproject.com/en/1.8/howto/custom-template-tags/#template-tag-thread-safety
- Horizon no longer requires Magic Search as an external dependency.
- The Sahara based content has been removed from the Horizon source tree and is now a separate plugin. To continue managing Sahara in Horizon, installing the sahara-dashboard plugin on the Horizon server is required.
- The Trove based content has been removed from the Horizon source tree and is now a separate plugin. To continue managing Trove in Horizon, installing the trove-dashboard plugin on the Horizon server is required.
- The main engine managing integration with oslo.policy has been moved to django_openstack_auth. The configuration is still managed in Horizon, but the setting for
openstack_dashboard.policy.check. Current behavior will remain consistent.
- The Python Swift panel has been deprecated and no longer displays by default. To use the old interface edit
- The Python Launch Instance workflow has been deprecated and no longer displays by default.
- The ‘default_ipv4_subnet_pool_label’ and ‘default_ipv6_subnet_pool_label’ options has been deprecated and will be removed in the Newton release. Starting with Mitaka you can create one default subnet pool per address family through the Neutron API. These subnet pools will automatically show up in the subnet pool list using the name of the pool as label.
- The setting CUSTOM_THEME_PATH is now deprecated.
- The setting DEFAULT_THEME_PATH is now deprecated.
- The ‘webroot’ theme has been removed.
- Policies associated with Consistency Groups exist in the Cinder policy file, and by default, all actions are disabled.
- blueprint gb-to-gib-conversion <https://blueprints.launchpad.net/horizon/+spec/gb-to-gib-conversion/>
- Several fixes have been made to the hzTable controller. The list below outline these changes. See inline documentation for usage details.
- Properties are now bound to the controller instead of the scope.
- Emit the hzTable:clearSelected event to clear table row selections.
- The property selections tracks the checkbox selection state of each row.
- The property selected is now a list of selected rows.
- The property numSelected has been removed, use selected.length instead.
- The select method has been renamed to to toggleSelect.
- The ‘webroot’ theme was providing an example of how to set the webroot value through SCSS for accessing needed static URL prefixes for assets like font paths. This value is now retrieved directly from the Django settings and is available directly in the SCSS namespace via $static_url.
- Current limitations on managing identity resources with Keystone v3:
- Does not support role assignments across domains, such as giving a user in domain1 access to domain2.
- Does not support project admins managing Keystone projects.
- Does not support hierarchical project management.