We are ecstatic to announce the release of: horizon 16.0.0: OpenStack Dashboard This release is part of the train 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. 16.0.0 ^^^^^^ Other Notes * The default values of the settings listed in "local_settings.py.example" in past releases have been moved to "openstack_dashboard/defaults.py". By doing this, horizon can now provide the definitions of the default settings more explicitly. For the available settings, see "openstack_dashboard/defaults.py" and the horizon setting reference found at https://docs.openstack.org/h orizon/latest/configuration/settings.html. Note that Django related settings and HORIZON_CONFIG still exist in "local_settings.py.example" in this release and they will be revisited in upcoming releases. Changes in horizon 15.0.0.0rc1..16.0.0 -------------------------------------- 35dc4814e Relnote: default values are moved to openstack_dashboard/defaults.py 693dc275e Imported Translations from Zanata 817ee34d5 Imported Translations from Zanata 3043d05e3 Imported Translations from Zanata 7f3c49efc Imported Translations from Zanata 5c284f228 Remove the check which causes plugin's quotas update failure fd61c25da Imported Translations from Zanata eb2ee54a0 Imported Translations from Zanata 5869b338d Update TOX/UPPER_CONSTRAINTS_FILE for stable/train e4e1ef1e7 Update .gitreview for stable/train f57b6ead5 Handle Permission Denied for policy files c574ceb0e Imported Translations from Zanata a945d4181 Fix skipped integration tests for securitygroup, namespace, usersettings ec970fd6e Handle partial dict setting 8051a2ca6 Wrong list of attached vms are shown in manage volume attachments 87b57dfe7 Add Allowed Address Pair/Delete buttons are only visible to admin 33d0bb8c5 Imported Translations from Zanata 81200b704 Imported Translations from Zanata 6ca6f215a Imported Translations from Zanata 7c3a9dd8d Documentation and release notes for changing expired passwords ba75bafc6 Specify proper container_format for 'vhd' disk_format 3ba5da30d Don't display expiration warning for expiration date in the past 437e32d18 Imported Translations from Zanata 9d98a0c24 Automatically redirect to the password change when it's expired fa804370b Imported Translations from Zanata cd1009bd2 Restore horizon.utils.functions.get_page_size() 02898d1ba Define zuul project-template for django22 job f33e5fd8a Drop deprecated Keystone V2 API support ceb221f6a Add a view for changing user password while not logged in f381f4dd3 Downloadable Kubernetes configuration file 02d9a05ee Define remaining openstack_dashboard settings 7e95e1601 Move default values defined in settings.py to defaults.py 7c897b677 Move openstack_dashboard specific settings from horizon 5101ebdc2 Remove unused settings in openstack_dashboard 9b99f1710 Define default settings explicitly (horizon) e56e076ea Define default settings explicitly (openstack_auth) b635e625f Updated max-width to be dynamic for .member class c6496c7d0 django22: release note and docs update 845e35815 Make horizon-openstack-tox-python3-django22 voting 1de8e806e trivial: Remove vendored 'is_safe_url' function ea24949ed trivial: Add TODOs for remaining function-based views bb2b1fd6c trivial: Remove 'cache_control' decorator b9e374d09 trivial: Remove dead code 4de98a0dc trivial: Mark inner method as such f654c893e django22: django.test.client.encode_multipart no longer accepts None 1d1c6ce4d django22: Replace 'render_to_response' with 'render' 8d05266d6 Imported Translations from Zanata 4ece14b28 Handle move of ABCs to collections.abc 885b4c5a6 Handle deprecation of inspect.getargspec f8552fc95 tox: Enable warnings 98d20a65d tox: Slight tweaks 86d13968d Remove unused 'not_list' template argument 8343014ec Fix "_data_table_action.html" template usage 5fd5b4c89 Fix version handling compatible with python-semanticversion 2.8 6c14f6049 Fix navigation hang issue f0f50d877 Imported Translations from Zanata 0a0fb835b PDF documentation build ab0e96df9 Avoid forced logout when 403 error encountered c238b519f Revert "Raise NotFound error when retrieved by not uuid" 82ed795b5 Fix typo: setDefaultIndexUrl -> getDefaultIndexUrl 30b7cfb9b Imported Translations from Zanata 97993e0c6 django22: Call 'is_safe_url' with 'allowed_hosts' fff89e69d django22: Add 'request' as first argument to 'authenticate' 7938f3601 django22: The 'login' functional-based view is gone (pt. 2) 49b6250ed django22: The 'login' functional-based view is gone (pt. 1) fbcfdf5f8 django22: Django now truncates using the ellipsis character 493c95459 django22: Handle changes in management commands d2dc6fa66 django22: Add 'renderer' argument 3e7fd76d7 Syntax error in image detail template fffdb8cc9 Imported Translations from Zanata cdb191ec8 Fix listing security groups when no rules 8f5a3cd7d Display password_regex_description when password change fails 78e382c3a Selenium tests fail when response is slow. f966365dd Imported Translations from Zanata 79c0da136 Fixing broken links cbeb92fa4 Add exception message when user 'Create Application Credential' 3e12c2cc4 Set log devel to DEBUG in local_settings.py.example d10913536 Imported Translations from Zanata d86b94019 Show username and user ID on "User Credentials Details" popup 0a10dde2e Imported Translations from Zanata 26c5c8c34 Correct error messages on detach volume form under instance panel 86e1960f9 Allow to select multiattach volume that has been attached abb23c672 Imported Translations from Zanata e0d0c9b7b Add the unit test for flavor 42f4ef334 Do not always assume image_id in volume_image_metadata 4d5e0cbb5 Imported Translations from Zanata 82a20c670 Fix boot-from-volume test in project.instances.tests 6dc4bd203 After deleting the server group, jump to the correct page 9fa1cddf0 Enable volume snapshot backups d2ae6b105 Add non-voting job with Python 3 + Django 2.2 3aac4a257 Define new 'horizon-tempest-plugin-ipv6' job in gate d5dcf1be9 Allow creating ICMPV6 rules 6216aa1a3 Add exception message when user Encrypt an 'Volume Type' in Use b8f7bd27a Imported Translations from Zanata 32d48626d Update api-ref location 6f4742457 Switch from django string_concat to format_lazy 363802d9e Avoid using nova volume test data for cinder API mocking 66144165f Use the python real executable fc967e6d9 Imported Translations from Zanata 9c30ca9c1 Preserve form field order in python 3 2f1e1899d Define default settings explicitly (openstack_dashboard 5/5) 64aa0dc98 Imported Translations from Zanata 808f4cca1 Add the unit test for keypairs 8653f718f Define default settings explicitly (openstack_dashboard 4/5) a9989330f Add the unit test for network_qos fcdc67b81 Define default settings explicitly (openstack_dashboard 3/5) b529f0093 Bump the openstackdocstheme extension to 1.20 e17325dd3 Fix quoting in zuul for tempest plugins 63ca38f00 Imported Translations from Zanata 26eebd4ab Cleanup unused util functions 4e911e288 Explicitly set LOCALE_PATHS for Horizon apps 1ac40ea95 Add exception message when user modify password same as previous 6c8674dc5 Replace "group spec" with "group type spec" f0fff4fe4 Add unit test for image detail 802ab1c8f Imported Translations from Zanata 5adf687ff Fix :param: in docstring 26146458e Change the way of verifying field cidr c60a82dfa Fixes creating nondefault type volumes from volume a4acc21da Remove volume_backup_list_paged from the volume tests file b3fada890 Update the constraints url cbd15bf91 Uniform asterisk mark color and location f0149ee0d Add the group_snapshot attribute to the snapshot in UpdateRow 9f18dde70 Image Name is optional parameter on create and update image form 92d832028 Fix tenant floating_ip_allocation call in neutron rest api. 11a12423b Blacklist sphinx 2.1.0 (autodoc bug) 36515b38b Do not try to access sets by index a55d7944b Remove reference to Neutron LBaaS 39efc89be Imported Translations from Zanata 04278cd9f Imported Translations from Zanata e13b74e4a Disable add rules button when quotas are exceeded in security rule panel c81af496c Quote keypair name in keypair panel 9c04063c0 Add asterisk mark for the required field on CreateNamespaceForm 248b8e971 Correct error messages on create and update router form 0cb5167b9 Make project volume group table work even with volumev3 only env 6f807b6b0 Adds community image loading for instance index view 09da336e9 Correct the prompt message when creating a volume in the image panel ae96fe63d Imported Translations from Zanata 4856a7e52 Check if network_id and qos_policy_id is empty a040c02a9 Do not call handle() when AZ is required a6fae3b10 Check if the key meets the cinder API validation a473887aa Add tooltips for "Admin State" in related forms 5c15c3286 Imported Translations from Zanata 9790293c2 Update URLs of horizon plugin registry d6c56c26b Use POST/Redirect/GET for an instance resize form 7c77637f7 Do not check name duplication when creating a volume group 1070425ab Remove the update.html on routers in admin panel 4af12ac8f Remove the function of messages.error in AddRouterRoute f9374ffb8 Fix typo in an OPENSTACK_PROFILER setting reference e8fd0020a Generate locale messages at dev server startup 45e8cb2fe Hide the Button of delete aggregate if a host in the aggregate 91a57e56e Blacklist bandit 1.6.0 77c6b1919 [trivial] use systemctl for service management in Ubuntu 2e52e4a4e Remove deprecated SHOW_KEYSTONE_V2_RC config option 69f00b437 Imported Translations from Zanata ce00c5ab1 Update sphinx dependency e3a2d2bbb Imported Translations from Zanata 98c434c19 Disabled accept transfer when number of volumes equal quota of volumes 8c125fa5a Imported Translations from Zanata e3c600cbb Add relnote on cinderclient minver bump to 4.0.1 9f4c9d19d Correct error messages on update network form 463da212c Use zuul template for python3 test runtime fae51c120 Imported Translations from Zanata 002c163d5 Snapshot Name is optional parameter on create and update snapshot form 74760876a Remove unnecessary variables a1d1756ea Imported Translations from Zanata 0e518521c Remove ENABLE_FLAVOR_EDIT config option 431fd6c16 Drop cinder consistency group support 209e537fb Move deeper-indented code to a separate method 43034cbb2 Fixes IPv6 static route addition a1559be77 Fix KeyError when image was deleted 48ac863f7 Document the plan of ini-based-configuration 31395b4d8 Correct error messages on create rbac policy form 8516de8f6 Correctly set content-type for workflow response cca464fa9 Allow deletion of description information when editing a volume group 259667dab Imported Translations from Zanata 209e13064 Translate status of volume group a569f0faf Replace git.openstack.org URLs with opendev.org URLs 53486be43 Define default settings explicitly (openstack_dashboard 2/5) 9c19b07a2 Define default settings explicitly (openstack_dashboard 1/5) 413e4b6d5 Application Credentials: Set unrestricted Default to False 564fb5aa5 Display the error message on create volume group form ff4644261 Periodically check item status if it in transition state 23e297410 Imported Translations from Zanata b30f0b513 OpenDev Migration Patch 18e9918d3 Adjusts subnet_free_ips to 0 when it is negative f8e5c4ef8 Disable textbox on create image form when submitting cf8f0de63 Drop nodejs4 job 080373033 Add missing ws separator between words 9db663f17 Translate instance action of lock and unlock and create image b028b5a0a Change Cinder API version in the documentation 35b20d0a1 Correct error messages of Create Extra Spec Form under Volume Type Panel f9b520f37 Set min version of python-cinderclient to 4.0.0 eca9c9149 Remove token object from credentials 81b53ae8a Fix typo: disassocaite -> disassociate 8de1e272f Incoming tenant id when creating a subnet on create network form cf9def203 Marking CIDR as mandatory field on Add rule form in security_group panel 5de40b3f3 Complete angular translation extract pattern b65c9c0e5 Imported Translations from Zanata 42349acc2 Modify the regex for name on import public key form 36170ed3c Sync policy.json files with service projects 3fb90e0c7 Translate awaiting-transfer status in volumes panel f722d2bb1 django.core.urlresolvers -> django.urls in doc d168e3f2f Add the required mark on edit form under under container panel e8de38fbe Don't allow deletion of HA port of router f62349a92 Add use_required_attribute = False in Add Interface Form b59b4effd Policy translation in server group form d61157242 Add asterisk mark for the required field on create volume form 41dd4836c Add the required mark 3b6c944ff Update python3 version info e4bc70b29 Imported Translations from Zanata 5ab15c49d Do not specify device_name when creating server with BFV cae432ab5 Imported Translations from Zanata 261c2ce60 Add nodejs10 jobs on bionic 4788c4d2f Not implicitly set vol_device_name to vda 829fcb77b Imported Translations from Zanata 0d8fba2a3 After deleting the trunk, jump to the correct page 513f9a79e Promote non-voting jobs to voting fcff081f4 Imported Translations from Zanata 2d6dfd598 project volume group: Fix incorrect reference to cgroup panel 5035ae51c Update master for stable/stein ffbe0e2f2 network topology: handle port AZ correctly f8e0be59a Add py36 and py37 tox envs 04fe1156b Support setting more visibility options for edit/create image 3c82a38f7 Display first volume image_metadata as an instance image 04399d69e Judge if horizon.datatables.qs is undefined 096438b64 Drop py35 jobs Diffstat (except docs and test files) ------------------------------------- .gitreview | 3 +- .pylintrc | 2 +- .zuul.yaml | 104 +- .../contributor/topics/ini-based-configuration.rst | 228 + .../locale/en_GB/LC_MESSAGES/doc-configuration.po | 126 +- .../locale/id/LC_MESSAGES/doc-configuration.po | 470 +- .../locale/id/LC_MESSAGES/doc-contributor.po | 12092 +++++++++++++++++++ horizon/base.py | 11 +- horizon/browsers/views.py | 4 +- horizon/conf/default.py | 3 +- horizon/defaults.py | 95 + horizon/forms/fields.py | 24 +- horizon/forms/views.py | 5 +- horizon/locale/ar/LC_MESSAGES/djangojs.po | 7 +- horizon/locale/de/LC_MESSAGES/django.po | 16 +- horizon/locale/de/LC_MESSAGES/djangojs.po | 12 +- horizon/locale/en_GB/LC_MESSAGES/djangojs.po | 5 +- horizon/locale/eo/LC_MESSAGES/django.po | 14 +- horizon/locale/eo/LC_MESSAGES/djangojs.po | 9 +- horizon/locale/es/LC_MESSAGES/djangojs.po | 5 +- horizon/locale/fi_FI/LC_MESSAGES/django.po | 156 +- horizon/locale/fr/LC_MESSAGES/djangojs.po | 5 +- horizon/locale/id/LC_MESSAGES/django.po | 14 +- horizon/locale/id/LC_MESSAGES/djangojs.po | 9 +- horizon/locale/ja/LC_MESSAGES/django.po | 17 +- horizon/locale/ja/LC_MESSAGES/djangojs.po | 8 +- horizon/locale/ko_KR/LC_MESSAGES/django.po | 18 +- horizon/locale/ko_KR/LC_MESSAGES/djangojs.po | 5 +- horizon/locale/pt_BR/LC_MESSAGES/djangojs.po | 5 +- horizon/locale/ru/LC_MESSAGES/djangojs.po | 7 +- horizon/locale/zh_CN/LC_MESSAGES/django.po | 14 +- horizon/locale/zh_CN/LC_MESSAGES/djangojs.po | 11 +- horizon/middleware/base.py | 10 +- horizon/middleware/operation_log.py | 31 +- .../conf/resource-type-registry.service.js | 2 +- horizon/static/framework/framework.module.js | 17 +- horizon/static/framework/framework.module.spec.js | 3 +- .../widgets/table/hz-resource-table.controller.js | 21 +- .../table/hz-resource-table.controller.spec.js | 12 +- .../framework/widgets/wizard/wizard.controller.js | 2 +- .../widgets/wizard/wizard.controller.spec.js | 10 +- horizon/static/horizon/js/horizon.forms.js | 23 - horizon/static/horizon/js/horizon.selenium.js | 2 +- horizon/static/horizon/js/horizon.tables.js | 4 +- horizon/tables/actions.py | 6 +- horizon/tables/base.py | 27 +- horizon/templates/auth/_password_form.html | 60 + horizon/templates/auth/_password_page.html | 26 + horizon/templates/auth/password.html | 14 + .../common/_data_table_row_actions_dropdown.html | 4 +- .../horizon/common/_data_table_table_actions.html | 4 +- .../common/_workflow_step_update_members.html | 1 + horizon/templatetags/branding.py | 7 +- horizon/templatetags/horizon.py | 6 +- horizon/test/helpers.py | 13 +- horizon/test/settings.py | 5 +- .../unit/management/commands/test_startdash.py | 21 +- .../unit/management/commands/test_startpanel.py | 20 +- horizon/test/unit/middleware/test_operation_log.py | 9 +- horizon/test/unit/tables/test_tables.py | 9 +- .../test/unit/utils/test_babel_extract_angular.py | 16 + horizon/test/unit/utils/test_filters.py | 2 +- horizon/test/unit/utils/test_units.py | 74 - horizon/test/urls.py | 3 +- horizon/test/webdriver.py | 35 +- horizon/themes.py | 16 +- horizon/utils/babel_extract_angular.py | 8 +- horizon/utils/functions.py | 12 +- horizon/utils/memoized.py | 2 +- horizon/utils/scss_filter.py | 2 +- horizon/utils/settings.py | 19 + horizon/utils/units.py | 147 - horizon/views.py | 4 +- lower-constraints.txt | 5 +- openstack_auth/backend.py | 65 +- openstack_auth/defaults.py | 173 + openstack_auth/exceptions.py | 32 + openstack_auth/forms.py | 134 +- openstack_auth/locale/de/LC_MESSAGES/django.po | 38 +- openstack_auth/locale/en_GB/LC_MESSAGES/django.po | 9 +- openstack_auth/locale/eo/LC_MESSAGES/django.po | 35 +- openstack_auth/locale/es/LC_MESSAGES/django.po | 13 +- openstack_auth/locale/fr/LC_MESSAGES/django.po | 10 +- openstack_auth/locale/id/LC_MESSAGES/django.po | 37 +- openstack_auth/locale/ja/LC_MESSAGES/django.po | 37 +- openstack_auth/locale/ko_KR/LC_MESSAGES/django.po | 41 +- openstack_auth/locale/ne/LC_MESSAGES/django.po | 89 + openstack_auth/locale/pt_BR/LC_MESSAGES/django.po | 11 +- openstack_auth/locale/ru/LC_MESSAGES/django.po | 35 +- openstack_auth/locale/zh_CN/LC_MESSAGES/django.po | 40 +- openstack_auth/plugin/base.py | 43 +- openstack_auth/plugin/k2k.py | 11 +- openstack_auth/plugin/password.py | 18 +- openstack_auth/plugin/token.py | 17 +- openstack_auth/policy.py | 20 +- openstack_auth/urls.py | 8 +- openstack_auth/utils.py | 124 +- openstack_auth/views.py | 109 +- openstack_dashboard/api/_nova.py | 4 +- openstack_dashboard/api/base.py | 55 +- openstack_dashboard/api/cinder.py | 159 +- openstack_dashboard/api/glance.py | 27 +- openstack_dashboard/api/keystone.py | 262 +- openstack_dashboard/api/microversions.py | 1 - openstack_dashboard/api/neutron.py | 58 +- openstack_dashboard/api/nova.py | 22 +- openstack_dashboard/api/rest/config.py | 11 +- openstack_dashboard/api/rest/glance.py | 2 +- openstack_dashboard/api/rest/keystone.py | 4 +- openstack_dashboard/api/rest/network.py | 2 +- openstack_dashboard/api/rest/neutron.py | 6 +- openstack_dashboard/api/swift.py | 12 +- .../conf/cinder_policy.d/consistencygroup.yaml | 10 - openstack_dashboard/conf/cinder_policy.json | 15 +- openstack_dashboard/conf/neutron_policy.json | 299 +- openstack_dashboard/conf/nova_policy.json | 36 +- openstack_dashboard/context_processors.py | 19 +- openstack_dashboard/contrib/developer/dashboard.py | 2 +- .../contrib/developer/profiler/api.py | 13 +- .../contrib/developer/profiler/middleware.py | 17 +- .../contrib/developer/profiler/panel.py | 4 +- .../profiler/templates/profiler/_mode_picker.html | 34 +- .../dashboards/admin/aggregates/forms.py | 33 +- .../dashboards/admin/aggregates/tables.py | 5 + .../dashboards/admin/flavors/urls.py | 4 +- .../dashboards/admin/floating_ips/panel.py | 7 +- .../dashboards/admin/group_types/specs/forms.py | 2 +- .../templates/group_types/specs/_create.html | 2 +- .../templates/group_types/specs/_edit.html | 2 +- .../dashboards/admin/images/urls.py | 4 +- .../dashboards/admin/images/views.py | 8 +- .../dashboards/admin/info/tables.py | 6 +- .../dashboards/admin/instances/views.py | 6 +- .../dashboards/admin/metadata_defs/forms.py | 3 +- .../dashboards/admin/networks/forms.py | 36 +- .../dashboards/admin/networks/subnets/tables.py | 2 + .../dashboards/admin/networks/views.py | 8 +- .../dashboards/admin/overview/views.py | 9 +- .../dashboards/admin/rbac_policies/forms.py | 19 + .../dashboards/admin/rbac_policies/panel.py | 6 +- .../dashboards/admin/routers/panel.py | 7 +- .../admin/routers/templates/routers/update.html | 7 - .../dashboards/admin/routers/views.py | 7 +- .../dashboards/admin/snapshots/tables.py | 6 +- .../dashboards/admin/volume_types/extras/forms.py | 13 +- .../dashboards/admin/volume_types/forms.py | 8 +- .../admin/volume_types/qos_specs/forms.py | 12 +- .../dashboards/admin/volumes/views.py | 8 +- .../identity/application_credentials/forms.py | 18 +- .../templates/application_credentials/_create.html | 8 + .../application_credentials/_success.html | 6 + .../application_credentials/kubeconfig.template | 26 + .../identity/application_credentials/urls.py | 2 + .../identity/application_credentials/views.py | 46 +- .../dashboards/identity/domains/panel.py | 3 - .../dashboards/identity/domains/tables.py | 8 +- .../dashboards/identity/domains/urls.py | 4 +- .../dashboards/identity/domains/workflows.py | 6 +- .../dashboards/identity/groups/urls.py | 4 +- .../dashboards/identity/groups/views.py | 6 +- .../dashboards/identity/projects/tables.py | 18 +- .../dashboards/identity/projects/tabs.py | 2 +- .../dashboards/identity/projects/views.py | 7 +- .../dashboards/identity/projects/workflows.py | 16 +- .../dashboards/identity/roles/urls.py | 4 +- .../dashboards/identity/roles/views.py | 6 +- .../dashboards/identity/users/forms.py | 22 +- .../dashboards/identity/users/tables.py | 2 - .../dashboards/identity/users/tabs.py | 2 +- .../dashboards/identity/users/urls.py | 5 +- .../dashboards/identity/users/views.py | 7 +- .../dashboards/project/api_access/tables.py | 25 +- .../templates/api_access/_credentials.html | 6 +- .../templates/api_access/openrc_v2.sh.template | 43 - .../dashboards/project/api_access/urls.py | 1 - .../dashboards/project/api_access/views.py | 42 +- .../dashboards/project/backups/forms.py | 52 +- .../dashboards/project/backups/tables.py | 29 + .../dashboards/project/backups/tabs.py | 13 +- .../backups/templates/backups/_create_backup.html | 5 + .../templates/backups/_detail_overview.html | 14 + .../backups/templates/backups/create_backup.html | 2 +- .../dashboards/project/backups/views.py | 6 + .../dashboards/project/cg_snapshots/__init__.py | 0 .../dashboards/project/cg_snapshots/forms.py | 76 - .../dashboards/project/cg_snapshots/panel.py | 51 - .../dashboards/project/cg_snapshots/tables.py | 118 - .../dashboards/project/cg_snapshots/tabs.py | 34 - .../templates/cg_snapshots/_create.html | 9 - .../templates/cg_snapshots/_detail_overview.html | 46 - .../templates/cg_snapshots/_update.html | 7 - .../templates/cg_snapshots/create.html | 7 - .../templates/cg_snapshots/update.html | 7 - .../dashboards/project/cg_snapshots/urls.py | 25 - .../dashboards/project/cg_snapshots/views.py | 153 - .../dashboards/project/cgroups/__init__.py | 0 .../dashboards/project/cgroups/forms.py | 216 - .../dashboards/project/cgroups/panel.py | 51 - .../dashboards/project/cgroups/tables.py | 175 - .../dashboards/project/cgroups/tabs.py | 34 - .../cgroups/templates/cgroups/_clone_cgroup.html | 9 - .../templates/cgroups/_create_snapshot.html | 10 - .../project/cgroups/templates/cgroups/_delete.html | 9 - .../templates/cgroups/_detail_overview.html | 34 - .../cgroups/templates/cgroups/_remove_vols.html | 7 - .../templates/cgroups/_snapshot_limits.html | 42 - .../project/cgroups/templates/cgroups/_update.html | 7 - .../cgroups/templates/cgroups/clone_cgroup.html | 7 - .../project/cgroups/templates/cgroups/create.html | 7 - .../cgroups/templates/cgroups/create_snapshot.html | 7 - .../project/cgroups/templates/cgroups/delete.html | 7 - .../cgroups/templates/cgroups/remove_vols.html | 7 - .../project/cgroups/templates/cgroups/update.html | 7 - .../dashboards/project/cgroups/urls.py | 44 - .../dashboards/project/cgroups/views.py | 320 - .../dashboards/project/cgroups/workflows.py | 414 - .../dashboards/project/containers/utils.py | 13 - .../dashboards/project/floating_ips/panel.py | 7 +- .../dashboards/project/floating_ips/tables.py | 8 +- .../dashboards/project/images/images/forms.py | 6 +- .../dashboards/project/images/images/tables.py | 6 +- .../dashboards/project/images/images/tabs.py | 5 +- .../dashboards/project/images/images/urls.py | 4 +- .../dashboards/project/images/images/views.py | 4 +- .../templates/images/images/_detail_overview.html | 2 +- .../dashboards/project/images/urls.py | 4 +- .../dashboards/project/images/utils.py | 30 - .../dashboards/project/instances/audit_tables.py | 4 + .../dashboards/project/instances/forms.py | 19 +- .../dashboards/project/instances/tables.py | 27 +- .../dashboards/project/instances/tabs.py | 8 +- .../templates/instances/_disassociate.html | 2 +- .../dashboards/project/instances/utils.py | 12 +- .../dashboards/project/instances/views.py | 103 +- .../dashboards/project/key_pairs/tables.py | 13 +- .../dashboards/project/key_pairs/urls.py | 4 +- .../dashboards/project/network_topology/utils.py | 12 +- .../dashboards/project/network_topology/views.py | 7 +- .../dashboards/project/networks/forms.py | 9 +- .../extensions/allowed_address_pairs/tables.py | 16 + .../dashboards/project/networks/ports/workflows.py | 27 +- .../dashboards/project/networks/views.py | 8 +- .../dashboards/project/networks/workflows.py | 21 +- .../routers/extensions/extraroutes/forms.py | 11 +- .../dashboards/project/routers/forms.py | 22 +- .../dashboards/project/routers/panel.py | 7 +- .../dashboards/project/routers/ports/forms.py | 1 + .../dashboards/project/routers/ports/tables.py | 6 + .../dashboards/project/security_groups/forms.py | 55 +- .../dashboards/project/security_groups/tables.py | 15 +- .../dashboards/project/snapshots/forms.py | 17 +- .../dashboards/project/snapshots/tables.py | 29 +- .../project/containers/edit-object-modal.html | 1 + .../project/containers/upload-object-modal.html | 1 + .../launch-instance-model.service.js | 27 +- .../launch-instance-model.service.spec.js | 19 +- .../server-groups/server-groups.controller.js | 6 + .../server-groups/server-groups.html | 2 +- .../dashboards/project/vg_snapshots/forms.py | 1 - .../dashboards/project/vg_snapshots/tables.py | 3 - .../dashboards/project/vg_snapshots/views.py | 3 - .../dashboards/project/volume_groups/forms.py | 13 +- .../dashboards/project/volume_groups/tables.py | 5 +- .../dashboards/project/volume_groups/views.py | 5 +- .../dashboards/project/volume_groups/workflows.py | 27 - .../dashboards/project/volumes/forms.py | 32 +- .../dashboards/project/volumes/tables.py | 45 +- .../dashboards/project/volumes/urls.py | 3 + .../dashboards/project/volumes/utils.py | 29 - .../dashboards/project/volumes/views.py | 8 +- .../dashboards/settings/password/forms.py | 4 +- .../dashboards/settings/user/forms.py | 2 +- .../dashboards/settings/user/views.py | 6 +- openstack_dashboard/defaults.py | 546 + .../_1340_project_consistency_groups_panel.py | 9 - .../enabled/_1350_project_cg_snapshots_panel.py | 10 - .../local/local_settings.py.example | 567 +- .../locale/as/LC_MESSAGES/django.po | 18 +- .../locale/bn_IN/LC_MESSAGES/django.po | 18 +- .../locale/brx/LC_MESSAGES/django.po | 18 +- .../locale/cs/LC_MESSAGES/django.po | 277 +- .../locale/cs/LC_MESSAGES/djangojs.po | 6 +- .../locale/de/LC_MESSAGES/django.po | 598 +- .../locale/de/LC_MESSAGES/djangojs.po | 31 +- .../locale/en_AU/LC_MESSAGES/django.po | 291 +- .../locale/en_AU/LC_MESSAGES/djangojs.po | 6 +- .../locale/en_GB/LC_MESSAGES/django.po | 330 +- .../locale/en_GB/LC_MESSAGES/djangojs.po | 12 +- .../locale/eo/LC_MESSAGES/django.po | 921 +- .../locale/eo/LC_MESSAGES/djangojs.po | 43 +- .../locale/es/LC_MESSAGES/django.po | 303 +- .../locale/es/LC_MESSAGES/djangojs.po | 6 +- .../locale/fr/LC_MESSAGES/django.po | 599 +- .../locale/fr/LC_MESSAGES/djangojs.po | 41 +- .../locale/gu/LC_MESSAGES/django.po | 18 +- .../locale/hi/LC_MESSAGES/django.po | 9 +- .../locale/id/LC_MESSAGES/django.po | 491 +- .../locale/id/LC_MESSAGES/djangojs.po | 40 +- .../locale/it/LC_MESSAGES/django.po | 133 +- .../locale/it/LC_MESSAGES/djangojs.po | 6 +- .../locale/ja/LC_MESSAGES/django.po | 488 +- .../locale/ja/LC_MESSAGES/djangojs.po | 22 +- .../locale/kn/LC_MESSAGES/django.po | 18 +- .../locale/ko_KR/LC_MESSAGES/django.po | 372 +- .../locale/ko_KR/LC_MESSAGES/djangojs.po | 6 +- .../locale/kok/LC_MESSAGES/django.po | 18 +- .../locale/ks/LC_MESSAGES/django.po | 18 +- .../locale/mai/LC_MESSAGES/django.po | 18 +- .../locale/mni/LC_MESSAGES/django.po | 18 +- .../locale/mr/LC_MESSAGES/django.po | 18 +- .../locale/ne/LC_MESSAGES/django.po | 18 +- .../locale/pa_IN/LC_MESSAGES/django.po | 18 +- .../locale/pl_PL/LC_MESSAGES/django.po | 27 +- .../locale/pt_BR/LC_MESSAGES/django.po | 577 +- .../locale/pt_BR/LC_MESSAGES/djangojs.po | 6 +- .../locale/ru/LC_MESSAGES/django.po | 847 +- .../locale/ru/LC_MESSAGES/djangojs.po | 1089 +- .../locale/ta/LC_MESSAGES/django.po | 18 +- .../locale/tr_TR/LC_MESSAGES/django.po | 300 +- .../locale/tr_TR/LC_MESSAGES/djangojs.po | 6 +- .../locale/ur/LC_MESSAGES/django.po | 18 +- .../locale/zh_CN/LC_MESSAGES/django.po | 451 +- .../locale/zh_CN/LC_MESSAGES/djangojs.po | 33 +- .../locale/zh_TW/LC_MESSAGES/django.po | 277 +- .../locale/zh_TW/LC_MESSAGES/djangojs.po | 6 +- .../management/commands/horizon.wsgi.template | 28 +- .../management/commands/make_web_conf.py | 3 + .../management/commands/upgrade_check.py | 4 +- openstack_dashboard/settings.py | 186 +- .../core/flavors/actions/actions.module.spec.js | 54 + .../static/app/core/flavors/flavors.module.spec.js | 52 + .../core/images/actions/create-volume.service.js | 4 +- .../app/core/images/details/details.module.spec.js | 31 + .../static/app/core/images/images.service.js | 2 +- .../static/app/core/images/images.service.spec.js | 4 +- .../steps/create-image/create-image.controller.js | 16 +- .../create-image/create-image.controller.spec.js | 14 +- .../images/steps/create-image/create-image.html | 24 +- .../steps/edit-image/edit-image.controller.js | 29 +- .../steps/edit-image/edit-image.controller.spec.js | 39 +- .../core/images/steps/edit-image/edit-image.html | 7 +- .../core/keypairs/actions/actions.module.spec.js | 59 + .../actions/create.key-type.controller.spec.js | 45 + .../app/core/keypairs/actions/create.key-type.html | 7 +- .../core/keypairs/actions/import.public-key.html | 9 +- .../app/core/keypairs/actions/import.service.js | 2 +- .../core/keypairs/details/details.module.spec.js | 31 + .../network_qos/details/details.module.spec.js | 32 + .../core/openstack-service-api/glance.service.js | 4 +- .../server_groups/actions/delete.action.service.js | 10 +- .../actions/delete.action.service.spec.js | 22 +- .../core/trunks/actions/delete.action.service.js | 13 +- .../core/trunks/steps/trunk-details.controller.js | 2 +- .../static/dashboard/scss/_variables.scss | 2 +- .../dashboard/scss/components/_membership.scss | 3 +- .../static/js/horizon.networktopology.js | 5 +- .../templates/header/_context_selection.html | 63 +- .../header/_keystone_provider_selection.html | 12 +- .../templates/header/_region_selection.html | 12 +- .../templates/header/_user_menu.html | 118 +- .../templatetags/context_selection.py | 11 +- openstack_dashboard/test/helpers.py | 4 +- .../pages/admin/system/metadatadefinitionspage.py | 10 +- .../pages/project/network/securitygroupspage.py | 5 +- openstack_dashboard/test/settings.py | 119 +- openstack_dashboard/test/test_data/cinder_data.py | 69 +- openstack_dashboard/test/test_data/neutron_data.py | 12 +- openstack_dashboard/test/test_data/nova_data.py | 15 +- .../test/unit/api/rest/test_keystone.py | 4 +- .../test/unit/api/rest/test_network.py | 2 +- openstack_dashboard/test/unit/api/test_base.py | 52 +- openstack_dashboard/test/unit/api/test_cinder.py | 79 - openstack_dashboard/test/unit/api/test_glance.py | 39 +- openstack_dashboard/test/unit/api/test_neutron.py | 4 +- openstack_dashboard/test/unit/api/test_nova.py | 8 +- .../test/unit/utils/test_settings.py | 39 + openstack_dashboard/urls.py | 2 +- openstack_dashboard/usage/base.py | 2 +- openstack_dashboard/usage/quotas.py | 3 - openstack_dashboard/utils/settings.py | 38 + openstack_dashboard/views.py | 3 +- ...s-change-expired-password-19223784fdf5059b.yaml | 6 + .../bp-kubernetes-config-gen-bcebcbd8f9fb9991.yaml | 8 + ...p-volume-snapshot-backups-54e4d18633fd4c5d.yaml | 5 + ...-default-image-visibility-560c3b6ab2830cdc.yaml | 6 + .../default-settings-moved-1e6a60408c47e2e2.yaml | 14 + ...recate-lbaas-v1-dashboard-1f9c48d7c6997b1f.yaml | 2 +- .../notes/django-2.2-2aff36c491fb7b95.yaml | 11 + .../drop-LBaaS-v1-dashboard-d767b0bde5274af5.yaml | 2 +- .../notes/drop-cgroup-c1f6b169ba10a5d3.yaml | 8 + .../drop-keystone-v2-support-04c7658f3bea67ac.yaml | 7 + ...i-attached-volume-support-3d32cde6f296cdd9.yaml | 15 + .../notes/policy-sync-stein-82531c937609ebb2.yaml | 12 + ...flavor-edit-config-option-0733b2ebb2ee1b4d.yaml | 4 + ...emove-show-keystone-v2-rc-913c822deaaa98cd.yaml | 4 + ...roup-no-rules-list-bugfix-b77ab5aff1d3e45e.yaml | 5 + ...n-cinderclient-dependency-9e12a69492f63289.yaml | 10 + .../vpnaas-panel-splitout-5783df1675bc984f.yaml | 2 +- releasenotes/source/conf.py | 19 - releasenotes/source/index.rst | 1 + .../source/locale/de/LC_MESSAGES/releasenotes.po | 4474 ------- .../locale/en_GB/LC_MESSAGES/releasenotes.po | 5640 --------- .../source/locale/id/LC_MESSAGES/releasenotes.po | 5538 --------- .../source/locale/ja/LC_MESSAGES/releasenotes.po | 5313 -------- .../locale/ko_KR/LC_MESSAGES/releasenotes.po | 1711 --- .../locale/pt_BR/LC_MESSAGES/releasenotes.po | 3940 ------ .../locale/zh_CN/LC_MESSAGES/releasenotes.po | 508 - releasenotes/source/stein.rst | 6 + requirements.txt | 2 +- setup.cfg | 2 +- test-requirements.txt | 2 +- tools/abandon_old_reviews.sh | 14 +- tox.ini | 86 +- 481 files changed, 23684 insertions(+), 40422 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 336f62fa6..2c907d8da 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34 +34 @@ pyScss!=1.3.5,>=1.3.4 # MIT License -python-cinderclient>=3.3.0 # Apache-2.0 +python-cinderclient>=4.0.1 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index 3e33d214d..b0c9e4466 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -13 +13 @@ astroid==2.1.0;python_version>='3.0' # LGPLv2.1 -bandit>=1.4.0 # Apache-2.0 +bandit!=1.6.0,>=1.4.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org