We are psyched to announce the release of: horizon 22.2.0: OpenStack Dashboard This release is part of the zed 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. 22.2.0 ^^^^^^ New Features ************ * Horizon can now use a system scope token when performing admin operations. To enable that, a new setting, SYSTEM_SCOPE_SERVICES, has to list the OpenStack services for which this feature is to be enabled. When that setting is not empty, a new option, "system scope" will appear in the context switching menu, and the panels for the listed services will be moved into that context in the main menu. Upgrade Notes ************* * Horizon no longer requires the keystone admin endpoint. keystone does not distinguish public and admin endpoints and there is no functional difference between public and admin endpoints. There is no need for a separate endpoint for keystone admin operations, but horizon required the keystone admin endpoint is configured previously. This requirement no longer exists. An endpoint specified by "OPENSTACK_ENDPOINT_TYPE" setting is used for the keystone admin operations. You can drop the admin endpoint for keystone (unless other services require it). [:bug:`1950659`] Deprecation Notes ***************** * The Django version of the Images, Keypairs, and Roles panels is deprecated now. Switch to the AngularJS version by setting "images_panel", "key_pairs_panel" and "roles_panel" keys in "ANGULAR_FEATURES" setting to "True" (or dropping these keys from "ANGULAR_FEATURES" setting). The horizon team believes that feature gaps between Django and AngularJS implementations have been closed for all these panels 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 22.0.0..22.2.0 --------------------------------- 2ebbb384a Imported Translations from Zanata f044c4b0a Migrate to AngularJS v1.8.2 2e6eca294 Speed up integration tests 6a3fa87cd Pass client IP to keystoneauth1 session f7e049233 Bump tox minversion to 3.18.0 65d748fb2 Deprecate Django based Panel for Images, Keypair, and roles 60692f56d Setup project template for nodejs v16 jobs a5dd9e21c Some tweaks to improve work with Material Theme e4ac4550c Pass real client IP to keystoneauth original_ip 33efe3179 Address RemovedInDjango40Warning 89249f76e [doc] Add documentation about the release process in horizon f4bbc99b1 Remove ability to filter instances by VCPUs 35a490f4e Do not assume keystone admin endpoint 51a15d479 Imported Translations from Zanata 6922e862f Add Python3 zed unit tests aaa7a4932 Update master for stable/yoga 961fab691 Replace remaining usage of ugettext_lazy b31bfe3b9 Add pagination to Flavors table in Launch Instance wizard 6c814b241 Add SYSTEM_SCOPE_SERVICES setting that hides panels 85e20a62e local_settings.py: Disable django.template DEBUG messages e6d46b218 Update pyScss to 1.4.0 4e0f5a5a8 Make existing empty metadata properties optional Diffstat (except docs and test files) ------------------------------------- .zuul.d/django-jobs.yaml | 2 +- .zuul.d/nodejs-jobs.yaml | 46 ++++ .zuul.d/project.yaml | 8 +- .zuul.d/tempest-and-integrated.yaml | 5 - .zuul.d/xstatic-master.yaml | 4 +- .../locale/en_GB/LC_MESSAGES/doc-configuration.po | 136 ++++++++++- .../locale/en_GB/LC_MESSAGES/doc-contributor.po | 191 ++++++++++++++- .../locale/id/LC_MESSAGES/doc-contributor.po | 11 +- horizon/conf/dash_template/dashboard.py.tmpl | 2 +- horizon/conf/panel_template/panel.py.tmpl | 2 +- horizon/static/framework/framework.module.spec.js | 4 +- horizon/static/framework/util/http/http.spec.js | 10 +- .../util/navigations/navigations.service.js | 2 + .../display/metadata-display.controller.js | 6 +- .../metadata/tree/metadata-tree-item.controller.js | 20 +- .../widgets/metadata/tree/metadata-tree-item.html | 2 +- .../metadata/tree/metadata-tree.controller.js | 17 +- .../widgets/metadata/tree/tree.service.js | 6 + .../property/hz-resource-property.controller.js | 18 +- .../static/framework/widgets/wizard/wizard.spec.js | 24 +- lower-constraints.txt | 2 +- openstack_auth/backend.py | 12 +- openstack_auth/locale/en_GB/LC_MESSAGES/django.po | 12 +- openstack_auth/plugin/base.py | 27 ++- openstack_auth/views.py | 11 +- openstack_dashboard/api/keystone.py | 11 +- .../dashboards/admin/aggregates/panel.py | 7 + .../dashboards/admin/defaults/panel.py | 7 + .../dashboards/admin/flavors/panel.py | 7 + .../dashboards/admin/floating_ips/panel.py | 7 + .../dashboards/admin/hypervisors/panel.py | 7 + .../dashboards/admin/images/panel.py | 7 + openstack_dashboard/dashboards/admin/info/panel.py | 7 + .../dashboards/admin/instances/panel.py | 7 + .../dashboards/admin/metadata_defs/panel.py | 7 + .../dashboards/admin/networks/panel.py | 7 + .../dashboards/admin/overview/panel.py | 7 + .../dashboards/admin/rbac_policies/panel.py | 4 + .../dashboards/admin/routers/panel.py | 7 + .../dashboards/admin/trunks/panel.py | 4 + .../dashboards/identity/dashboard.py | 7 + .../dashboards/identity/roles/views.py | 11 + .../identity/domains/actions/delete.service.js | 4 +- .../domains/actions/delete.service.spec.js | 6 +- .../dashboards/project/images/views.py | 11 + .../dashboards/project/instances/tables.py | 1 - .../dashboards/project/key_pairs/views.py | 10 + .../containers/containers.controller.spec.js | 2 +- .../containers/objects-row-actions.service.spec.js | 6 +- .../launch-instance/flavor/flavor-details.html | 39 ++++ .../launch-instance/flavor/flavor.controller.js | 99 ++++++-- .../workflow/launch-instance/flavor/flavor.html | 259 ++------------------- .../workflow/launch-instance/flavor/flavor.spec.js | 18 +- .../launch-instance-model.service.spec.js | 26 ++- openstack_dashboard/defaults.py | 5 + openstack_dashboard/karma.conf.js | 2 +- .../local/local_settings.py.example | 8 + .../locale/en_GB/LC_MESSAGES/django.po | 14 +- .../locale/en_GB/LC_MESSAGES/djangojs.po | 207 +++++++++++++++- openstack_dashboard/static/app/app.module.js | 8 +- .../core/images/actions/delete-image.service.js | 4 +- .../static/app/core/images/images.service.spec.js | 6 +- .../steps/create-image/create-image.controller.js | 6 +- .../create-image/create-image.controller.spec.js | 6 +- .../create-volume/create-volume.controller.js | 22 +- .../create-volume/create-volume.controller.spec.js | 76 +++--- .../actions/delete.action.service.spec.js | 1 + .../core/openstack-service-api/cinder.service.js | 42 ++-- .../core/openstack-service-api/common-test.mock.js | 6 +- .../core/openstack-service-api/glance.service.js | 22 +- .../core/openstack-service-api/keystone.service.js | 74 +++--- .../core/openstack-service-api/network.service.js | 10 +- .../core/openstack-service-api/neutron.service.js | 76 +++--- .../openstack-service-api/neutron.service.spec.js | 62 ++--- .../app/core/openstack-service-api/nova.service.js | 83 +++---- .../openstack-service-api/nova.service.spec.js | 36 +-- .../core/openstack-service-api/policy.service.js | 8 +- .../openstack-service-api/policy.service.spec.js | 6 +- .../security-group.service.js | 2 +- .../core/openstack-service-api/settings.service.js | 2 +- .../openstack-service-api/settings.service.spec.js | 21 +- .../core/openstack-service-api/swift.service.js | 78 +++---- .../openstack-service-api/swift.service.spec.js | 42 ++-- .../actions/delete.action.service.spec.js | 6 +- .../trunks/actions/delete.action.service.spec.js | 1 + .../templates/header/_context_selection.html | 4 +- .../templatetags/context_selection.py | 4 +- .../themes/material/static/_styles.scss | 6 + .../material/templates/horizon/_sidebar.html | 4 +- ...or-images-keyspairs-roles-36b9c234eef71b51.yaml | 12 + .../feature-system-scope-a88a07b7f414b3d6.yaml | 9 + ...dpoint-no-longer-required-06a8d29dfdb3b1cd.yaml | 12 + releasenotes/source/index.rst | 1 + .../locale/en_GB/LC_MESSAGES/releasenotes.po | 230 +++++++++++++++++- releasenotes/source/yoga.rst | 6 + requirements.txt | 2 +- tox.ini | 8 +- 104 files changed, 1762 insertions(+), 786 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index f1f245993..9eabe2f25 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32 +32 @@ pymongo!=3.1,>=3.0.2 # Apache-2.0 -pyScss>=1.3.7 # MIT License +pyScss>=1.4.0 # MIT License