We are chuffed to announce the release of: horizon 25.2.0 This release is part of the epoxy 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. 25.2.0 ^^^^^^ Prelude ******* Horizon is switching away from pyscss and django-pyscss, and now uses the libsass library for partsing the scss files instead. Upgrade Notes ************* * Horizon now uses the libsass library. Horizon packagers now need to include python3-libsass in the dependency list. Deprecation Notes ***************** * Horizon no longer uses the pyscss and django-pyscss libraries. They can be safely removed from the dependency lists by Horizon packagers. Bug Fixes ********* * Fix typo in metadef resource type. When Horizon retrieve possible metadata for Cinder Volume Type it will now retrieve OS::Cinder::VolumeType instead of OS:Cinder::VolumeType (note first :). Changes in horizon 25.1.0..25.2.0 --------------------------------- 24274d1e7 Imported Translations from Zanata d79022eb3 Do column name translations at runtime, not at import 440d7b98a Imported Translations from Zanata 923a37e91 Small fix with tags 609983c26 Support new pytest 8.3.4 e2c6cdb1b doc: Install and configure for Red Hat Enterprise Linux and CentOS - WEBROOT b8a152f5f doc: Switch to PyMemcacheCache backend - Manual installation 53bba73b5 Fix the attribute to look up security group ids of a port (3) bf925eea0 Change Openstack Keystone Default Role from "user" to "member" for preventing errors while creating different enitities. e3bf69f01 Move deprecated since/reason to deprecated_rule object 2dc9b5475 Replace deprecated django.utils.timezone.utc f207f8573 doc: Use dnf instead of yum c2cce4025 Fix the attribute to look up security group ids of a port (2) ca0dbdab8 Fix a typo e1fde47a0 Allow configuring separated UI tests for different themes a87ad750e Allow configuring tests for different themes 4d990a0d2 pytest-based selenium tests rm login tests 757bb2087 Fix system-scope test 123873cbd Add release notes for libsass f51470344 Use a dedicated target to run reno command 3ab66494b Fix the attribute to look up security group ids of a port 8ccaf47a7 doc: Switch to PyMemcacheCache backend 5093c4101 Replace placement request path 283219ab5 Replace django-pyscss with libsass 6394e6e27 pytest-based UI tests rm login test 6305d05ed Update gate jobs as per the 2025.1 cycle testing runtime 2ec0177ed Use Python 3.12 for python3-django job 69ab8938c Configuring tests for different themes - ui unification e9893b3f2 Drop USE_L10N 1d00997f5 SDK for Neutron Routers 4105f61fc pytest-based tests add fix tooltip obscures db0d6a04e pytest-based tests move help_url test 1e8a03289 Fix integration tests image cirros version, ignore doc line length 906be8585 Replace deprecated functions in datetime 1d00c2bff pytest-based UI tests add fix not interactable element b34bd0264 Fix typo in metadef for Cinder Volume Type 9210f9b05 tox: Drop envdir 179c2e377 cinder: Use 'block-storage' service type to detect cinder 058fb1ba0 pytest-based tests add fix more specific css selector 66f61889b pytest-based UI tests add fix create instance 3789b36fd Deactivate/reactivate images d710db0bb fix typos df2906b7f pytest-based UI tests add fix form of comment 681f9537c Update master for stable/2024.2 e0d9cd7fb Fix password_validator to accept regex expressions 964623e16 Force scope when listing domains Diffstat (except docs and test files) ------------------------------------- .pylintrc | 16 +- .zuul.d/django-jobs.yaml | 10 +- .zuul.d/project.yaml | 2 + .zuul.d/tempest-and-integrated.yaml | 8 + .../locale/en_GB/LC_MESSAGES/doc-configuration.po | 78 +- .../locale/en_GB/LC_MESSAGES/doc-contributor.po | 142 ++- .../locale/id/LC_MESSAGES/doc-configuration.po | 73 +- .../locale/id/LC_MESSAGES/doc-contributor.po | 138 +-- horizon/base.py | 4 + horizon/forms/fields.py | 6 +- horizon/locale/de/LC_MESSAGES/django.po | 6 +- horizon/locale/de/LC_MESSAGES/djangojs.po | 6 +- horizon/locale/eo/LC_MESSAGES/djangojs.po | 10 +- horizon/locale/fi_FI/LC_MESSAGES/django.po | 6 +- horizon/locale/fr/LC_MESSAGES/django.po | 6 +- horizon/locale/id/LC_MESSAGES/django.po | 6 +- horizon/locale/id/LC_MESSAGES/djangojs.po | 6 +- horizon/locale/ko_KR/LC_MESSAGES/djangojs.po | 6 +- horizon/locale/pt_BR/LC_MESSAGES/django.po | 6 +- horizon/locale/pt_BR/LC_MESSAGES/djangojs.po | 10 +- horizon/locale/ru/LC_MESSAGES/django.po | 66 +- horizon/locale/ru/LC_MESSAGES/djangojs.po | 52 +- horizon/locale/sl_SI/LC_MESSAGES/django.po | 6 +- horizon/locale/sr/LC_MESSAGES/django.po | 10 +- horizon/management/commands/pull_catalog.py | 2 +- horizon/management/commands/startpanel.py | 1 + horizon/notifications.py | 2 +- horizon/tables/actions.py | 4 +- horizon/tables/base.py | 8 +- horizon/templatetags/parse_date.py | 3 +- horizon/test/settings.py | 2 - horizon/utils/functions.py | 4 +- horizon/utils/scss_filter.py | 110 +- horizon/utils/secret_key.py | 4 +- horizon/workflows/base.py | 28 +- openstack_auth/forms.py | 18 +- openstack_auth/locale/en_GB/LC_MESSAGES/django.po | 8 +- openstack_auth/locale/ru/LC_MESSAGES/django.po | 30 +- openstack_auth/policy.py | 9 +- openstack_auth/utils.py | 2 +- openstack_dashboard/api/base.py | 1 + openstack_dashboard/api/cinder.py | 6 +- openstack_dashboard/api/glance.py | 12 + openstack_dashboard/api/keystone.py | 2 +- openstack_dashboard/api/neutron.py | 58 +- openstack_dashboard/api/placement.py | 7 +- openstack_dashboard/api/rest/glance.py | 22 + openstack_dashboard/api/rest/json_encoder.py | 2 +- openstack_dashboard/api/swift.py | 8 +- .../conf/default_policies/cinder.yaml | 689 +++++++---- .../conf/default_policies/glance.yaml | 298 +++-- .../conf/default_policies/keystone.yaml | 777 +++++++----- .../conf/default_policies/neutron.yaml | 1278 +++++++++++++------- .../conf/default_policies/nova.yaml | 850 ++++++++++--- .../contrib/developer/profiler/api.py | 3 +- .../dashboards/admin/group_types/panel.py | 5 +- openstack_dashboard/dashboards/admin/info/tabs.py | 4 +- .../dashboards/admin/networks/subnets/tables.py | 5 +- .../dashboards/admin/ngflavors/views.py | 2 +- .../dashboards/admin/snapshots/panel.py | 4 +- .../dashboards/admin/volume_types/panel.py | 4 +- .../admin/volume_types/qos_specs/views.py | 1 + .../dashboards/admin/volumes/panel.py | 4 +- .../dashboards/project/api_access/views.py | 1 + .../dashboards/project/backups/panel.py | 4 +- .../backups/templates/backups/_create_backup.html | 3 +- .../project/floating_ip_portforwardings/tables.py | 8 +- .../dashboards/project/floating_ips/tables.py | 4 +- .../dashboards/project/networks/ports/views.py | 3 +- .../dashboards/project/networks/ports/workflows.py | 2 +- .../templates/networks/ports/_detail_overview.html | 2 +- .../dashboards/project/routers/tables.py | 6 +- .../dashboards/project/routers/views.py | 12 +- .../dashboards/project/snapshots/panel.py | 4 +- .../launch-instance-model.service.js | 14 +- .../launch-instance-model.service.spec.js | 4 + .../dashboards/project/vg_snapshots/panel.py | 5 +- .../dashboards/project/volume_groups/panel.py | 5 +- .../dashboards/project/volumes/panel.py | 4 +- openstack_dashboard/defaults.py | 6 +- openstack_dashboard/django_pyscss_fix/__init__.py | 50 - openstack_dashboard/hooks.py | 2 +- openstack_dashboard/karma.conf.js | 8 +- .../locale/as/LC_MESSAGES/django.po | 6 +- .../locale/bn_IN/LC_MESSAGES/django.po | 6 +- .../locale/brx/LC_MESSAGES/django.po | 6 +- .../locale/cs/LC_MESSAGES/django.po | 16 +- .../locale/cs/LC_MESSAGES/djangojs.po | 6 +- .../locale/de/LC_MESSAGES/django.po | 65 +- .../locale/de/LC_MESSAGES/djangojs.po | 6 +- .../locale/en_AU/LC_MESSAGES/django.po | 38 +- .../locale/en_GB/LC_MESSAGES/django.po | 46 +- .../locale/en_GB/LC_MESSAGES/djangojs.po | 64 +- .../locale/eo/LC_MESSAGES/django.po | 113 +- .../locale/eo/LC_MESSAGES/djangojs.po | 37 +- .../locale/es/LC_MESSAGES/django.po | 67 +- .../locale/fr/LC_MESSAGES/django.po | 48 +- .../locale/gu/LC_MESSAGES/django.po | 6 +- .../locale/hi/LC_MESSAGES/django.po | 6 +- .../locale/id/LC_MESSAGES/django.po | 47 +- .../locale/it/LC_MESSAGES/django.po | 28 +- .../locale/ja/LC_MESSAGES/django.po | 42 +- .../locale/kn/LC_MESSAGES/django.po | 6 +- .../locale/ko_KR/LC_MESSAGES/django.po | 45 +- .../locale/kok/LC_MESSAGES/django.po | 6 +- .../locale/ks/LC_MESSAGES/django.po | 10 +- .../locale/mai/LC_MESSAGES/django.po | 6 +- .../locale/mni/LC_MESSAGES/django.po | 10 +- .../locale/mr/LC_MESSAGES/django.po | 6 +- .../locale/ne/LC_MESSAGES/django.po | 6 +- .../locale/pa_IN/LC_MESSAGES/django.po | 10 +- .../locale/pl_PL/LC_MESSAGES/django.po | 10 +- .../locale/pt_BR/LC_MESSAGES/django.po | 46 +- .../locale/ru/LC_MESSAGES/django.po | 639 ++++++---- .../locale/ru/LC_MESSAGES/djangojs.po | 110 +- .../locale/ta/LC_MESSAGES/django.po | 14 +- .../locale/tr_TR/LC_MESSAGES/django.po | 34 +- .../locale/tr_TR/LC_MESSAGES/djangojs.po | 6 +- .../locale/ur/LC_MESSAGES/django.po | 10 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 37 +- .../locale/zh_Hant/LC_MESSAGES/django.po | 31 +- .../locale/zh_Hant/LC_MESSAGES/djangojs.po | 7 +- .../management/commands/dump_default_policies.py | 8 +- .../management/commands/extract_messages.py | 2 +- .../management/commands/make_web_conf.py | 10 +- .../management/commands/migrate_settings.py | 12 +- .../management/commands/update_catalog.py | 6 +- .../management/commands/upgrade_check.py | 2 + openstack_dashboard/settings.py | 11 +- .../app/core/images/actions/actions.module.js | 18 + .../core/images/actions/create-volume.service.js | 6 +- .../images/actions/deactivate-image.service.js | 138 +++ .../app/core/images/actions/edit.action.service.js | 3 - .../images/actions/reactivate-image.service.js | 133 ++ .../steps/deactivate/deactivate.controller.js | 50 + .../core/images/steps/deactivate/deactivate.html | 23 + .../update-metadata/update-metadata.help.html | 2 - .../static/app/core/metadata/metadata.service.js | 2 +- .../core/openstack-service-api/glance.service.js | 16 + .../pages/project/compute/instancespage.py | 2 +- .../pages/project/volumes/volumespage.py | 2 +- openstack_dashboard/test/selenium/conftest.py | 22 +- .../test/selenium/integration/conftest.py | 15 +- .../test/selenium/integration/test_images.py | 8 +- .../test/selenium/integration/test_instances.py | 11 +- .../test/selenium/integration/test_login.py | 25 - .../test/selenium/integration/test_networks.py | 2 +- .../test/selenium/integration/test_projects.py | 16 +- .../test/selenium/integration/test_routers.py | 21 +- .../test/selenium/integration/test_settings.py | 34 + .../test/selenium/ui/test_actions.py | 15 +- .../test/selenium/ui/test_browse.py | 128 +- .../test/selenium/ui/test_hypervisors.py | 16 +- .../test/selenium/ui/test_settings.py | 63 +- openstack_dashboard/test/selenium/widgets.py | 9 +- openstack_dashboard/test/test_data/neutron_data.py | 16 + openstack_dashboard/test/unit/api/test_neutron.py | 160 ++- .../themes/material/static/_variables.scss | 1 + .../material/static/bootstrap/_variables.scss | 2 + .../themes/material/static/horizon/_icons.scss | 1 - .../themes/material/static/horizon/_styles.scss | 9 - .../components/_loader_circular_example.scss | 2 +- openstack_dashboard/usage/base.py | 8 +- openstack_dashboard/usage/quotas.py | 4 +- openstack_dashboard/utils/settings.py | 1 + .../change-libsass-pyscss-120e0e847470261b.yaml | 12 + ...ef-for-cinder-volume-type-f65dd215d2a3ce75.yaml | 6 + releasenotes/source/2024.2.rst | 6 + releasenotes/source/index.rst | 1 + .../source/locale/de/LC_MESSAGES/releasenotes.po | 29 +- .../locale/en_GB/LC_MESSAGES/releasenotes.po | 116 +- .../source/locale/fr/LC_MESSAGES/releasenotes.po | 280 ----- .../source/locale/id/LC_MESSAGES/releasenotes.po | 34 +- .../source/locale/ja/LC_MESSAGES/releasenotes.po | 24 +- .../locale/ko_KR/LC_MESSAGES/releasenotes.po | 20 +- .../locale/pt_BR/LC_MESSAGES/releasenotes.po | 41 +- requirements.txt | 5 +- tox.ini | 26 +- 203 files changed, 5461 insertions(+), 3362 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index e7178e202..581d29ff3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11 +10,0 @@ django-debreach>=1.4.2 # BSD License (2 clause) -django-pyscss>=2.0.3 # BSD License (2 clause) @@ -22 +21 @@ oslo.upgradecheck>=1.5.0 # Apache-2.0 -oslo.utils>=4.12.0 # Apache-2.0 +oslo.utils>=7.0.0 # Apache-2.0 @@ -24 +23 @@ osprofiler>=3.4.2 # Apache-2.0 -pyScss>=1.4.0 # MIT License +libsass>=0.23.0 # MIT
participants (1)
-
no-reply@openstack.org