We are jazzed to announce the release of: horizon 18.1.0: OpenStack Dashboard This release is part of the ussuri 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. 18.1.0 ^^^^^^ New Features * Introduced a new "DEFAULT_BOOT_SOURCE" config option to allow operators to configure a default instance boot source. Changes in horizon 18.0.0..18.1.0 --------------------------------- 571eb23c7 Tell reno to ignore the kilo branch 7acb68b5c Imported Translations from Zanata 11d4954cc Use pyScss2 and django-pyscss2 d8ff9cf0e Imported Translations from Zanata 2b55e3f7a Catch AttributeError when deleting temp file on image upload f66ef7b5a tests: Convert 'OpenStackAuthTestsV3Base' to mock (pt. 4) 91a62dc98 tests: Convert 'OpenStackAuthTestsV3Base' to mock (pt. 3) 262bed40e tests: Convert 'OpenStackAuthTestsV3Base' to mock (pt. 2) 97980a4bb tests: Convert 'OpenStackAuthTestsV3Base' to mock (pt. 1) 1fc70d750 Remove python_2_unicode_compatible usage 7192dd1b5 tests: Convert 'OpenStackAuthTestsWebSSO' to mock dd32c9287 Skip integration tests for UT only changes 9cbbf0947 Imported Translations from Zanata 5e979b751 Remove PYTHONHASHSEED variable from integration tests env bc59d73ee Fix menu navigation for slow loading pages 2c30f8927 trivial: Use literals inline e23fe2bc4 tests: Convert remaining mox tests to mock (pt. 2.8) 7b2e5f3f7 trivial: Remove now unused comments 4b31ae506 Check volume endpoint availability in the same order 12faaf8dd tests: Convert remaining mox tests to mock (pt. 2.7) ed3e73892 tests: Convert remaining mox tests to mock (pt. 2.6) 890af5c5d tests: Convert remaining mox tests to mock (pt. 2.5) a5dc59f7e tests: Convert remaining mox tests to mock (pt. 2.4) 2a59abc74 tests: Convert remaining mox tests to mock (pt. 2.3) 3422bed83 tests: Convert remaining mox tests to mock (pt. 2.2) 25fa17b41 tests: Convert remaining mox tests to mock (pt. 2.1) 22c6409c6 Drop custom formatwarning from settings.py ac3d139c0 Cleanup python 2.7 handling logic 12cd2090b Revert "Explicitly set LOCALE_PATHS for Horizon apps" 61ec305e3 Add support to modal.js for file attachments in form response 3e7bc83c4 Allow to set default instance boot source 32be95514 minor clean up on mox removal f1c8d3306 Convert test_switch_* test to mock a85254409 Convert project-list related tests to mock bb5a38f77 Note on enmerkar in requirements.txt 9d434006b Imported Translations from Zanata c54ee9bd0 [doc]Correcting broken link 5c54ab5d4 Add pagination to Source table in Launch Instance wizard 057abb210 Add pagination to Server Groups table in Launch Instance wizard 72b9201ab tests: Convert remaining mox tests to mock (pt. 1) 1778421a5 tests: Remove unused helper functions 2b3ab4644 Remove errant references to mox a95398d01 Manually registering 2 Dashboards breaks get_dashboards() (python3) decb90bf6 Experimental tests with xstatic reviews 8c2b51acc flake8: Ensure local check in hacking 2.0.0 e456500bd Imported Translations from Zanata 207ebdf27 Removing USE_SSL parameter from the configuration documentation f6f858f72 Trigger size's oninput event manually after choosing source f9e0f8a97 Allow to evacuate without specifying a target host 4fc1b9c42 Remove six.reraise usage a62751ca4 Add pagination to Security Groups table in Launch Instance wizard 01440a4cb Imported Translations from Zanata d870b4058 Remove six usage from openstack_dashboard package e976461d8 Remove six usage from horizon package 1570e5c3e Remove Pint from requirements.txt 4ef9ba94c Avoid duplicated maintenance of integration test config 5dd2bf5fb Remove six usage from openstack_auth package a17aa5568 Skip horizon-integration-tests for translation jobs 0a4785c48 Imported Translations from Zanata 3b7d392d9 zuul: Avoid duplicated job 5d7e3eac0 Remove flavor disk size ckeck when create instance from volume e6ce38822 Fix dupliated words issue like " by by which" cd80207d0 Generate plugin registry based on releases repo c7e5b6497 Set up the initial displayed values in all boot-sources Diffstat (except docs and test files) ------------------------------------- .gitignore | 4 + .zuul.yaml | 78 +- bindep.txt | 2 + .../locale/en_GB/LC_MESSAGES/doc-configuration.po | 185 +- .../locale/id/LC_MESSAGES/doc-configuration.po | 78 +- .../locale/id/LC_MESSAGES/doc-contributor.po | 359 ++-- horizon/base.py | 25 +- horizon/exceptions.py | 8 +- horizon/forms/fields.py | 8 +- horizon/hacking/checks.py | 7 +- horizon/locale/en_GB/LC_MESSAGES/django.po | 14 +- horizon/locale/en_GB/LC_MESSAGES/djangojs.po | 8 +- horizon/locale/ru/LC_MESSAGES/django.po | 16 +- horizon/locale/ru/LC_MESSAGES/djangojs.po | 10 +- horizon/middleware/operation_log.py | 10 +- horizon/static/horizon/js/horizon.forms.js | 3 + horizon/static/horizon/js/horizon.modals.js | 21 +- horizon/tables/actions.py | 6 +- horizon/tables/base.py | 78 +- horizon/tables/formset.py | 15 +- horizon/tabs/base.py | 9 +- horizon/templatetags/angular.py | 11 +- horizon/test/helpers.py | 22 +- horizon/test/unit/tables/test_tables.py | 49 +- horizon/test/unit/tabs/test_tabs.py | 4 +- horizon/test/unit/test_base.py | 52 +- horizon/test/unit/test_exceptions.py | 2 +- horizon/test/unit/test_messages.py | 8 +- .../test/unit/utils/test_babel_extract_angular.py | 28 +- horizon/test/unit/workflows/test_workflows.py | 18 +- horizon/utils/babel_extract_angular.py | 14 +- horizon/utils/csvbase.py | 13 +- horizon/utils/functions.py | 7 +- horizon/utils/scss_filter.py | 4 +- horizon/utils/settings.py | 4 +- horizon/workflows/base.py | 12 +- horizon/workflows/views.py | 4 +- lower-constraints.txt | 6 +- openstack_auth/locale/en_GB/LC_MESSAGES/django.po | 36 +- openstack_auth/locale/ru/LC_MESSAGES/django.po | 34 +- openstack_auth/plugin/base.py | 4 +- openstack_auth/user.py | 3 +- openstack_auth/utils.py | 20 +- openstack_auth/views.py | 7 +- openstack_dashboard/api/base.py | 16 +- openstack_dashboard/api/cinder.py | 78 +- openstack_dashboard/api/glance.py | 41 +- openstack_dashboard/api/keystone.py | 8 +- openstack_dashboard/api/neutron.py | 16 +- openstack_dashboard/api/rest/glance.py | 3 +- openstack_dashboard/api/rest/json_encoder.py | 9 - openstack_dashboard/api/rest/swift.py | 3 - openstack_dashboard/api/swift.py | 4 +- .../contrib/developer/profiler/api.py | 8 +- .../contrib/developer/profiler/middleware.py | 3 +- .../dashboards/admin/group_types/specs/tables.py | 3 +- .../dashboards/admin/hypervisors/compute/forms.py | 5 + .../dashboards/admin/images/views.py | 2 +- .../admin/volume_types/qos_specs/tables.py | 3 +- .../dashboards/project/images/images/forms.py | 7 +- .../dashboards/project/instances/forms.py | 3 +- .../dashboards/project/instances/utils.py | 3 +- .../project/instances/workflows/create_instance.py | 5 +- .../dashboards/project/key_pairs/tables.py | 3 +- .../dashboards/project/security_groups/forms.py | 6 +- .../dashboards/project/security_groups/tables.py | 5 +- .../launch-instance/flavor/flavor.controller.js | 2 +- .../launch-instance-model.service.js | 9 +- .../launch-instance-model.service.spec.js | 11 +- .../security-groups/security-group-details.html | 4 +- .../security-groups/security-groups.controller.js | 20 +- .../security-groups/security-groups.html | 109 +- .../security-groups/security-groups.spec.js | 13 +- .../server-groups/server-groups.controller.js | 35 +- .../server-groups/server-groups.html | 65 +- .../server-groups/server-groups.spec.js | 11 +- .../launch-instance/source/source-details.html | 56 +- .../launch-instance/source/source.controller.js | 184 +- .../source/source.controller.spec.js | 89 +- .../workflow/launch-instance/source/source.html | 186 +-- openstack_dashboard/defaults.py | 5 + .../locale/cs/LC_MESSAGES/djangojs.po | 240 +-- .../locale/de/LC_MESSAGES/django.po | 130 +- .../locale/de/LC_MESSAGES/djangojs.po | 212 ++- .../locale/en_AU/LC_MESSAGES/djangojs.po | 170 +- .../locale/en_GB/LC_MESSAGES/django.po | 341 +++- .../locale/en_GB/LC_MESSAGES/djangojs.po | 232 +-- .../locale/eo/LC_MESSAGES/django.po | 48 +- .../locale/eo/LC_MESSAGES/djangojs.po | 241 +-- .../locale/es/LC_MESSAGES/djangojs.po | 239 +-- .../locale/fr/LC_MESSAGES/django.po | 43 +- .../locale/fr/LC_MESSAGES/djangojs.po | 248 +-- .../locale/id/LC_MESSAGES/django.po | 144 +- .../locale/id/LC_MESSAGES/djangojs.po | 179 +- .../locale/it/LC_MESSAGES/djangojs.po | 142 +- .../locale/ja/LC_MESSAGES/django.po | 49 +- .../locale/ja/LC_MESSAGES/djangojs.po | 214 ++- .../locale/ko_KR/LC_MESSAGES/django.po | 41 +- .../locale/ko_KR/LC_MESSAGES/djangojs.po | 214 ++- .../locale/pt_BR/LC_MESSAGES/django.po | 43 +- .../locale/pt_BR/LC_MESSAGES/djangojs.po | 247 +-- .../locale/ru/LC_MESSAGES/django.po | 144 +- .../locale/ru/LC_MESSAGES/djangojs.po | 243 +-- .../locale/tr_TR/LC_MESSAGES/djangojs.po | 240 +-- .../locale/zh_CN/LC_MESSAGES/django.po | 43 +- .../locale/zh_CN/LC_MESSAGES/djangojs.po | 215 ++- .../locale/zh_TW/LC_MESSAGES/djangojs.po | 210 ++- .../management/commands/horizon.wsgi.template | 4 - .../management/commands/make_web_conf.py | 6 +- openstack_dashboard/settings.py | 18 +- openstack_dashboard/templatetags/themes.py | 2 +- openstack_dashboard/test/helpers.py | 25 +- openstack_dashboard/test/test_data/exceptions.py | 5 - openstack_dashboard/test/unit/api/test_keystone.py | 5 +- openstack_dashboard/test/unit/api/test_neutron.py | 5 +- openstack_dashboard/test/unit/test_views.py | 10 +- openstack_dashboard/test/unit/usage/test_quotas.py | 16 +- openstack_dashboard/utils/config.py | 4 +- openstack_dashboard/utils/config_types.py | 20 +- openstack_dashboard/views.py | 2 +- playbooks/npm-test-xstatic-master/pre.yaml | 9 + plugin-registry.csv | 30 + ...ault-instance-boot-source-0cd60b3090ef4b38.yaml | 5 + .../source/locale/de/LC_MESSAGES/releasenotes.po | 24 +- .../locale/en_GB/LC_MESSAGES/releasenotes.po | 350 +++- .../source/locale/id/LC_MESSAGES/releasenotes.po | 162 +- reno.yaml | 3 + requirements.txt | 14 +- setup.cfg | 1 + test-requirements.txt | 1 - tools/executable_files.txt | 3 +- tools/list-horizon-plugins.py | 101 ++ tox.ini | 10 +- 196 files changed, 6111 insertions(+), 5270 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index a53d561d9..9c8a09002 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,0 +11 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 + @@ -17,2 +18 @@ django-debreach>=1.4.2 # BSD License (2 clause) -django-pyscss>=2.0.2 # BSD License (2 clause) -enmerkar>=0.7.1 # BSD +django-pyscss2>=3.0.0 # BSD License (2 clause) @@ -31 +30,0 @@ osprofiler>=2.3.0 # Apache-2.0 -Pint>=0.5 # BSD @@ -33 +32 @@ pymongo!=3.1,>=3.0.2 # Apache-2.0 -pyScss!=1.3.5,>=1.3.4 # MIT License +pyScss2>=1.4.0 # MIT License @@ -44 +42,0 @@ semantic-version>=2.3.1 # BSD -six>=1.10.0 # MIT @@ -72,0 +71,6 @@ XStatic-tv4>=1.2.7.0 # MIT + +# enmerkar is not a runtime requirement. +# It is only required when extracting translation strings. +# Most horizon plugins do not have enmerkar in their requirements.txt +# and they depends on horizon requirements, so we keep it here. +enmerkar>=0.7.1 # BSD diff --git a/test-requirements.txt b/test-requirements.txt index e26120707..c6b84aa0c 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -17 +16,0 @@ mock>=2.0.0 # BSD -mox3>=0.20.0 # Apache-2.0