[release-announce] horizon 19.1.0 (wallaby)

no-reply at openstack.org no-reply at openstack.org
Mon Mar 15 10:49:03 UTC 2021


We are tickled pink to announce the release of:

horizon 19.1.0: OpenStack Dashboard

This release is part of the wallaby release series.

The source is available from:

    https://opendev.org/openstack/horizon

Download the package from:

    https://tarballs.openstack.org/horizon/

Please report issues through:

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

For more details, please see below.

19.1.0
^^^^^^


New Features
************

* Setting 'can_set_password' to True in
  OPENSTACK_HYPERVISOR_FEATURES adds the option to set admin password
  from AngularJS Launch Instance dialog.

* Horizon supports the registered default policies and operators now
  only need to define policies which they would like to override in
  policy files in "POLICY_FILES" setting. (Previously the policy files
  need to contain all defined policies including default policies.)
  The registered default policies are defined in files under
  "DEFAULT_POLICY_FILES" and they are synced with registered defaults
  of back-end services before the horizon release.

* Chinese locales "zh-cn" and "zh-tw" are now changed to "zh-hans"
  and "zh-hant" respectively. This follows the change in Django which
  is a framework horizon depends on. The new locales decouples what
  are spoken from specific locations as they are also used outside of
  China/Taiwan.

* Volume backups is now supported for admin panel. Admin is now able
  to view all volume backups for differenet users.


Known Issues
************

* Policies with the system scoped token ("system_scope:all") are not
  supported in horizon yet. The horizon team recognizes it as an
  important feature gap and would like to support it in near future.


Upgrade Notes
*************

* The format of the policy files under "POLICY_FILES" is changed to
  YAML and all contents of these files are commented out now. You only
  need to define policies which you would like to modify from the
  default. You can still use policy files with JSON format. If you
  continue to use JSON format, configure "POLICY_FILES" setting to
  point JSON files.

* Chinese locales "zh-cn" and "zh-tw" have been changed to "zh-hans"
  and "zh-hant" respectively. If you configure "LANGUAGES" in your
  setting explicitly, ensure to use the new Chinese locales if needed.


Deprecation Notes
*****************

* The Django version of the launch instance form is deprecated now.
  Switch to the AngularJS version of the form by setting
  "LAUNCH_INSTANCE_NG_ENABLED" to "True" and
  "LAUNCH_INSTANCE_LEGACY_ENABLED" to "False". The horizon team
  believes that feature gaps between Django and AngularJS
  implementations have been closed and we can drop the Django version.
  If you see any feature gap, please file a bug to horizon or contact
  the horizon team.

Changes in horizon 19.0.0..19.1.0
---------------------------------

57380fae7 Deprecate Django launch instance form
87edcb619 Imported Translations from Zanata
1d39ac761 Add Volume backups support for admin panel
6efaee23d import "collections.abc" explicitly
82900d727 Try loading all policy files even if some files are invalid
f78a9c2c0 Allow themes to override bg color of even lines of horizon tables
b84195290 Handle an attached volume without volume_image_metadata
1dd12d8de test: Ensure to stop mock when create_mocks decorator exits
c9bb0e95e Fix community image handling in launch instance form
3fe0802ea Fix typo in horizon/exceptions.py
69147c0c3 Imported Translations from Zanata
f3bfa3834 Fix Material theme to work with any combination of pyScss and MDI icons
1c5b39e27 Update upgrade_check to discover dashboard settings automatically
b02d1267a upgrade_check: Convert KNOWN_SETTINGS into one-per-line style
391a66046 Rename zh-cn and zh-tw translations to zh-hans and zh-hant
73a4c3682 Drop translation marker from upgrade-check help
b4fd4c2e7 Server tabs: add policy enforcement for tab display
4aa00e8f5 Support policy checks in the Tab base class
87f498bee Drop the usage of unicode prefix from unicode strings
be3d27c02 Add openstack_auth to translation-related commands
9ad554248 security_groups panel: Add neutron policy enforcement
7c4f1f9cb Imported Translations from Zanata
4894d0eed Use override_settings decorator consistently
f0460fc43 Use TOX_CONSTRAINTS_FILE
b7bb76eb2 Support policy-in-code and deprecated policy
c2d3f61d4 Set Admin Password at NG Launch Instance dialog
15cb035ef Consume horizon tempest test from tempest master
4b48b5816 Bump min requirement of xstatic-jquery to 1.12.x
b65700a86 Show project name at launch instance dialog
76f196d1e Add option to set MTU on network creation
1a40115ee Use "load static" instead of "load staticfiles"
0f6427860 Fix 'requires_keypair' impact on NG Launch Instance dialog
2e1a45db3 Clean up the removed enable_* settings
d909495ae Imported Translations from Zanata
dc9e2f788 Imported Translations from Zanata
5c45c8825 Add expectations to identity specs
5cc402c00 Imported Translations from Zanata
b532943a3 Update devDependencies in package.json
807a33e1c Update ESLint devDependencies in package.json
d93c7e9c1 Imported Translations from Zanata
2fd27e4e5 Remove retired karbor-dashboard usage
6f0200032 Update lower constraints and change browser to Firefox to unblock gate
3c0f69ee1 Document bug triaging process
33b031c95 [cleanup] Remove unused file refernce from .gitignore file
f7442851c Add WEBROOT to ngdetails navigation
982e772a6 Add try/except block for some nova and neutron api calls
ee667919c [Cleanup] Remove unused attributes
03eaf9cd8 Avoid malformed HTML warning from jquery-migrate
40acf5b75 Fix full text search at containers page
35e8888b6 Add pagination to Network Ports table in Launch Instance wizard


Diffstat (except docs and test files)
-------------------------------------

.eslintrc                                          |    2 +
.gitignore                                         |    7 +-
.zuul.d/tempest-and-integrated.yaml                |    5 +-
.../locale/en_GB/LC_MESSAGES/doc-configuration.po  |   13 +-
.../locale/en_GB/LC_MESSAGES/doc-contributor.po    |  183 +-
.../locale/id/LC_MESSAGES/doc-configuration.po     |   30 +-
.../locale/id/LC_MESSAGES/doc-contributor.po       |  306 +-
horizon/base.py                                    |    5 +-
horizon/contrib/bootstrap_datepicker.py            |    4 +-
horizon/exceptions.py                              |    4 +-
horizon/forms/fields.py                            |   10 +-
horizon/karma.conf.js                              |   14 +-
.../{zh_CN => zh_Hans}/LC_MESSAGES/django.po       |    2 +-
.../{zh_CN => zh_Hans}/LC_MESSAGES/djangojs.po     |    2 +-
.../{zh_TW => zh_Hant}/LC_MESSAGES/django.po       |    2 +-
.../{zh_TW => zh_Hant}/LC_MESSAGES/djangojs.po     |    2 +-
horizon/management/commands/pull_catalog.py        |   21 +-
.../conf/resource-type-registry.service.spec.js    |    5 +
.../util/navigations/navigations.service.js        |    9 +
.../util/navigations/navigations.service.spec.js   |    7 +
.../details/routed-details-view.controller.js      |    9 +-
horizon/static/horizon/js/horizon.d3linechart.js   |    2 +-
.../static/horizon/js/horizon.extensible_header.js |    2 +-
horizon/static/horizon/js/horizon.forms.js         |   10 +-
horizon/static/horizon/js/horizon.heattop.js       |    6 +-
horizon/static/horizon/js/horizon.lists.js         |    8 +-
horizon/static/horizon/js/horizon.membership.js    |    4 +-
horizon/static/horizon/js/horizon.tables.js        |   18 +-
horizon/static/horizon/js/horizon.tabs.js          |    4 +-
horizon/tables/actions.py                          |    4 +-
horizon/tables/base.py                             |    1 +
horizon/tabs/base.py                               |   14 +-
horizon/templatetags/splitfilter.py                |    2 +-
horizon/test/helpers.py                            |    2 +-
.../test/test_dashboards/dogs/puppies/tables.py    |    8 +-
horizon/test/unit/middleware/test_operation_log.py |   12 +-
horizon/test/unit/tables/test_tables.py            |   53 +-
horizon/test/unit/tabs/test_tabs.py                |   32 +-
.../test/unit/templatetags/test_templatetags.py    |    8 +-
horizon/test/unit/test_exceptions.py               |   22 +-
.../test/unit/utils/test_babel_extract_angular.py  |   36 +-
horizon/test/unit/utils/test_filters.py            |   10 +-
horizon/utils/babel_extract_angular.py             |   12 +-
lower-constraints.txt                              |   14 +-
openstack_auth/defaults.py                         |    1 +
openstack_auth/locale/eo/LC_MESSAGES/django.po     |   13 +-
openstack_auth/locale/id/LC_MESSAGES/django.po     |    8 +-
.../{zh_CN => zh_Hans}/LC_MESSAGES/django.po       |    2 +-
.../{zh_TW => zh_Hant}/LC_MESSAGES/django.po       |    2 +-
openstack_auth/policy.py                           |   53 +
openstack_dashboard/api/cinder.py                  |   30 +-
openstack_dashboard/api/neutron.py                 |   14 +-
openstack_dashboard/api/rest/swift.py              |    8 +-
openstack_dashboard/conf/cinder_policy.json        |  147 -
openstack_dashboard/conf/cinder_policy.yaml        |  646 ++++
.../conf/default_policies/README.txt               |   12 +
.../conf/default_policies/cinder.yaml              | 1137 +++++++
.../conf/default_policies/glance.yaml              |  280 ++
.../conf/default_policies/keystone.yaml            | 2954 +++++++++++++++++++
.../conf/default_policies/neutron.yaml             | 1511 ++++++++++
.../conf/default_policies/nova.yaml                | 3103 ++++++++++++++++++++
openstack_dashboard/conf/glance_policy.json        |   63 -
openstack_dashboard/conf/glance_policy.yaml        |  121 +
openstack_dashboard/conf/keystone_policy.json      |  174 --
openstack_dashboard/conf/keystone_policy.yaml      | 2330 +++++++++++++++
openstack_dashboard/conf/neutron_policy.json       |  220 --
openstack_dashboard/conf/neutron_policy.yaml       |  961 ++++++
openstack_dashboard/conf/nova_policy.json          |  158 -
openstack_dashboard/conf/nova_policy.yaml          | 1877 ++++++++++++
.../dashboards/admin/aggregates/tables.py          |    8 +-
.../dashboards/admin/backups/__init__.py           |    0
.../dashboards/admin/backups/forms.py              |   72 +
.../dashboards/admin/backups/panel.py              |   18 +
.../dashboards/admin/backups/tables.py             |  119 +
.../dashboards/admin/backups/tabs.py               |   23 +
.../templates/backups/_detail_overview.html        |   62 +
.../backups/templates/backups/_update_status.html  |   11 +
.../backups/templates/backups/update_status.html   |    7 +
.../dashboards/admin/backups/urls.py               |   29 +
.../dashboards/admin/backups/views.py              |  138 +
.../dashboards/admin/flavors/tables.py             |    8 +-
.../dashboards/admin/group_types/specs/tables.py   |    8 +-
.../dashboards/admin/group_types/tables.py         |    8 +-
.../dashboards/admin/hypervisors/compute/tables.py |   18 +-
.../dashboards/admin/info/tables.py                |    6 +-
.../dashboards/admin/instances/tables.py           |    8 +-
.../dashboards/admin/metadata_defs/tables.py       |    8 +-
.../dashboards/admin/networks/agents/tables.py     |    8 +-
.../dashboards/admin/networks/forms.py             |    7 +
.../dashboards/admin/networks/tables.py            |    4 +-
.../dashboards/admin/networks/workflows.py         |    2 +-
.../dashboards/admin/rbac_policies/tables.py       |    8 +-
.../dashboards/admin/volume_types/extras/tables.py |    8 +-
.../dashboards/admin/volume_types/forms.py         |    4 +-
.../admin/volume_types/qos_specs/tables.py         |    8 +-
.../dashboards/admin/volume_types/tables.py        |   24 +-
.../dashboards/identity/domains/tables.py          |   24 +-
.../dashboards/identity/groups/tables.py           |   24 +-
.../identity_providers/protocols/tables.py         |    8 +-
.../identity/identity_providers/tables.py          |    8 +-
.../dashboards/identity/mappings/tables.py         |    8 +-
.../dashboards/identity/projects/tables.py         |    8 +-
.../dashboards/identity/roles/tables.py            |    8 +-
.../domains/actions/delete.service.spec.js         |   12 +-
.../groups/actions/delete.action.service.spec.js   |   12 +-
.../users/actions/delete.action.service.spec.js    |   12 +-
.../dashboards/identity/users/tables.py            |   24 +-
.../dashboards/project/backups/forms.py            |    5 +-
.../dashboards/project/backups/tables.py           |   28 +-
.../dashboards/project/backups/tabs.py             |    3 +-
.../dashboards/project/floating_ips/tables.py      |   14 +-
.../dashboards/project/images/images/tables.py     |   30 +-
.../dashboards/project/instances/audit_tables.py   |   38 +-
.../dashboards/project/instances/tables.py         |  264 +-
.../dashboards/project/instances/tabs.py           |   29 +-
.../dashboards/project/instances/views.py          |    8 +
.../dashboards/project/key_pairs/tables.py         |    8 +-
.../extensions/allowed_address_pairs/tables.py     |    8 +-
.../dashboards/project/networks/ports/tables.py    |   20 +-
.../dashboards/project/networks/subnets/tables.py  |    8 +-
.../dashboards/project/networks/tables.py          |   20 +-
.../dashboards/project/networks/workflows.py       |    9 +-
.../routers/extensions/extraroutes/tables.py       |    8 +-
.../dashboards/project/routers/ports/tables.py     |   22 +-
.../dashboards/project/routers/tables.py           |   24 +-
.../dashboards/project/routers/views.py            |    2 +-
.../dashboards/project/security_groups/tables.py   |   35 +-
.../dashboards/project/snapshots/tables.py         |    8 +-
.../dashboard/project/containers/containers.html   |  140 +-
.../launch-instance/details/details.controller.js  |   11 +-
.../details/details.controller.spec.js             |   10 +
.../workflow/launch-instance/details/details.html  |    6 +
.../launch-instance/keypair/keypair.controller.js  |   10 +
.../keypair/keypair.controller.spec.js             |   16 +-
.../workflow/launch-instance/keypair/keypair.html  |   53 +
.../launch-instance-model.service.js               |   29 +-
.../launch-instance-model.service.spec.js          |  104 +-
.../launch-instance/networkports/port-details.html |   18 +
.../networkports/ports.controller.js               |   90 +-
.../launch-instance/networkports/ports.html        |  165 +-
.../launch-instance/networkports/ports.spec.js     |   45 +-
.../dashboards/project/vg_snapshots/tables.py      |   14 +-
.../dashboards/project/volume_groups/tables.py     |   10 +-
.../dashboards/project/volumes/forms.py            |    2 +-
.../dashboards/project/volumes/tables.py           |   48 +-
openstack_dashboard/defaults.py                    |   17 +-
.../enabled/_2230_admin_backups_panel.py           |    9 +
openstack_dashboard/karma.conf.js                  |   10 +-
.../locale/de/LC_MESSAGES/django.po                |    6 +-
.../locale/en_GB/LC_MESSAGES/django.po             |   18 +-
.../locale/en_GB/LC_MESSAGES/djangojs.po           |   20 +-
.../locale/eo/LC_MESSAGES/django.po                |   95 +-
.../locale/eo/LC_MESSAGES/djangojs.po              |   20 +-
.../locale/fr/LC_MESSAGES/django.po                |    7 +-
.../locale/id/LC_MESSAGES/django.po                |   12 +-
.../locale/id/LC_MESSAGES/djangojs.po              |    8 +-
.../locale/ja/LC_MESSAGES/django.po                |    7 +-
.../locale/ko_KR/LC_MESSAGES/django.po             |    5 +-
.../locale/ru/LC_MESSAGES/django.po                |    5 +-
.../locale/tr_TR/LC_MESSAGES/django.po             |    2 +-
.../{zh_CN => zh_Hans}/LC_MESSAGES/django.po       |    5 +-
.../{zh_CN => zh_Hans}/LC_MESSAGES/djangojs.po     |    2 +-
.../{zh_TW => zh_Hant}/LC_MESSAGES/django.po       |    2 +-
.../{zh_TW => zh_Hant}/LC_MESSAGES/djangojs.po     |    2 +-
.../management/commands/dump_default_policies.py   |   82 +
.../management/commands/extract_messages.py        |    2 +-
.../management/commands/update_catalog.py          |   12 +-
.../management/commands/upgrade_check.py           |  350 ++-
openstack_dashboard/settings.py                    |    4 +-
.../static/dashboard/scss/_variables.scss          |    2 +-
.../static/dashboard/scss/components/_forms.scss   |    5 +
openstack_dashboard/static/js/.eslintrc            |    1 +
openstack_dashboard/templates/500.html             |    2 +-
.../templates/header/_header_sections.html         |    4 +-
openstack_dashboard/test/helpers.py                |   13 +-
openstack_dashboard/test/test_data/cinder_data.py  |   24 +-
openstack_dashboard/test/test_data/glance_data.py  |   48 +-
.../test/test_data/keystone_data.py                |    2 +-
openstack_dashboard/test/test_data/neutron_data.py |   34 +-
openstack_dashboard/test/test_data/nova_data.py    |   26 +-
openstack_dashboard/test/test_data/swift_data.py   |   38 +-
.../test/unit/api/rest/test_swift.py               |   46 +-
openstack_dashboard/test/unit/api/test_glance.py   |   24 +-
openstack_dashboard/test/unit/api/test_nova.py     |    4 +-
.../test/unit/utils/test_config_types.py           |    2 +-
.../themes/material/static/horizon/_icons.scss     |    3 +
.../static/horizon/components/_checkboxes.scss     |    2 +
.../horizon/components/_context_selection.scss     |    6 +-
.../static/horizon/components/_datepicker.scss     |    4 +
.../static/horizon/components/_navbar.scss         |    6 +-
.../static/horizon/components/_radiobuttons.scss   |    2 +
.../static/horizon/components/_spinners.scss       |    6 +
openstack_dashboard/usage/quotas.py                |   21 +-
package.json                                       |   18 +-
plugin-registry.csv                                |    1 -
...ango-launch-instance-form-cc176ad708e2f1f7.yaml |   11 +
...h-instance-admin-password-68e7e4b7af239bae.yaml |    5 +
.../policy-in-code-support-f79d559c25976215.yaml   |   22 +
.../rename-chinese-locales-a6fb595bc373791f.yaml   |   12 +
.../notes/volume-backups-a198d0ce16d62636.yaml     |    5 +
releasenotes/source/conf.py                        |   14 +-
.../source/locale/de/LC_MESSAGES/releasenotes.po   |    8 +-
.../locale/en_GB/LC_MESSAGES/releasenotes.po       |   42 +-
.../source/locale/id/LC_MESSAGES/releasenotes.po   |   96 +-
.../source/locale/ja/LC_MESSAGES/releasenotes.po   |    8 +-
requirements.txt                                   |    8 +-
tox.ini                                            |    4 +-
244 files changed, 18755 insertions(+), 2614 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 2bb8e2749..aaa9ad13a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -26 +26 @@ oslo.i18n>=3.15.3 # Apache-2.0
-oslo.policy>=1.30.0 # Apache-2.0
+oslo.policy>=3.2.0 # Apache-2.0
@@ -29 +29 @@ oslo.upgradecheck>=0.1.1 # Apache-2.0
-oslo.utils>=3.33.0 # Apache-2.0
+oslo.utils>=3.40.0 # Apache-2.0
@@ -57 +57 @@ XStatic-Jasmine>=2.4.1.1 # MIT License
-XStatic-jQuery>=1.8.2.1,<2 # MIT License
+XStatic-jQuery>=1.12.4.1,<2 # MIT License
@@ -61 +61 @@ XStatic-JQuery.TableSorter>=2.14.5.1 # MIT License
-XStatic-jquery-ui>=1.10.4.1 # MIT License
+XStatic-jquery-ui>=1.12.1.1 # MIT License






More information about the Release-announce mailing list