[release-announce] horizon 15.0.0 (stein)

no-reply at openstack.org no-reply at openstack.org
Wed Apr 10 12:26:00 UTC 2019


We are psyched to announce the release of:

horizon 15.0.0: OpenStack Dashboard

This release is part of the stein release series.

The source is available from:

    https://git.openstack.org/cgit/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.

15.0.0
^^^^^^

Upgrade Notes

* policy.json files for Cinder, Keystone Neutron and Nova are
  generated according to Policy file maintenance. Keystone changes to
  *policy rules <https://docs.openstack.org/releasenotes/keystone/ste
  in.html#prelude>__*, are not compatible with the Horizon so we
  keystone_policy.json is not updated. Please, be sure that new
  Keystone policies are compatible with your deployment before syncing
  them.

Changes in horizon 14.0.0.0rc1..15.0.0
--------------------------------------

9042981cc Sync policy.json files with service projects
3766cf693 Imported Translations from Zanata
96ad636f8 Not implicitly set vol_device_name to vda
88b27ddde Imported Translations from Zanata
1d0172191 Display first volume image_metadata as an instance image
39be99b85 project volume group: Fix incorrect reference to cgroup panel
273de58cc network topology: handle port AZ correctly
157026d64 Update UPPER_CONSTRAINTS_FILE for stable/stein
cf058902d Update .gitreview for stable/stein
803fe90bb Imported Translations from Zanata
f05e64095 Modify the success message of launch instance
177f9be74 Fix: Help text for creating group type has incorrect description
59765a9e2 Imported Translations from Zanata
a85687cb7 Add Validation msg in Create Extra Spec Form under Volume Type Panel
f272d9136 Fix CSRF error on Images dashboard
f83324a52 Add Group and Group Snapshot colunm
876a1674f Imported Translations from Zanata
0c482d848 Imported Translations from Zanata
7fbf2b5c0 Setup project-template for nodejs10 jobs
8e13106ad Make domain_lookup return consistent type
989763483 Add verification of the volume type
a10d5f18e Define a project-template for horizon plugins
e332cef01 Add key_type selection on Keypairs form
3ddfd5d41 Imported Translations from Zanata
0f2df7623 Modify the success message of 'Edit' user information
e37a50863 Implement CSRF_COOKIE_HTTPONLY option support
4103de6f3 add the 'word-wrap' to update metadata form
29738534f Show flavor tooltip on mouse hover
52e6fb031 Imported Translations from Zanata
ff5f74d5d Fixes double loading in Image source loading
6372a689e Don't use check_for_language in the user settings form
beedc4e72 Correcting the error messages of Volume Snapshot Table
4e8e90798 Add python-memcached library to test-requirements.txt
58211d628 Updating Note to Setup guide
7cb4be82b Add Project Information column in group-snapshot table
43f8c3b1f Switch integration tests to run with python3
c0ceda4c5 Imported Translations from Zanata
78de54787 Fix policy function check error
d7d6c0577 Add a upgrade_check management command
e33d56ff7 add the max_value to field in create flavor form
4b523122b Add volume group-specs-list support for admin panel
bdf7e6922 Update appdirs lower constraint to 1.4.0
07e8543e5 Modify the error messages of Create group and update group
5e53e014d Fix recoverable error at volume group create
2c5afc7f0 Imported Translations from Zanata
5f01e34ca Change image_id to aggregate_id
eb6a78f51 Throws exceptions.Conflict() in the interface application_credential_create
b57eea004 Ensure to use tenant_quota_usages
17d793185 Allow image format edit only for queued images
b37abb116 Fix: Volume Snapshot Table "Project' column info
b45de686a Add <span class='word-wrap'>
c7568b0ec add python 3.7 unit test job
13a083a6c Imported Translations from Zanata
9497a2372 Add volume-group snapshot for admin panel
74b5367c7 Add a additional filter replace_underscores to filter the snapshot status
99b89a430 Add Project ID information in detail page
534539487 the metadata needs to be word wrap in volume detail
787ede8d9 Clarify instance state after launch submission
ba4a84148 Modify the prompt of update network
f24278da7 Modify the flavor ID regex
c871c6570 Add Project Information column in table
07ec6deb5 Add a prompt on the Create Volume form
d5b7feb5d Imported Translations from Zanata
611224db1 Quote cinder qos-spec key name
1ca0c6f6e instances.tests: Set return_value for tenant_absolute_limits
4bf069bb9 Ensure to call patch_middleware_get_user() in api.test_base
949802264 pylint: fix cyclic-import
3ac903767 Table checkbox display problem when updating row
a06e7de97 Correct error message for volume size in Launch Instance
8ccbd8357 Remove obsolete creation_counter field
2ef503465 Fixing a link in templates of CG and CG snapshots
5764aa588 Add volume group-type list/show support for admin panel
2bbd0e250 Ensure only one prompt for cidr and gateway_ip
96d2b775f Show error message on the Edit Image form
ece4ddbe6 Imported Translations from Zanata
35e933867 Align default integration config values with code
26a8b0447 Imported Translations from Zanata
e531b7bab Fix osprofiler support in horizon
28b457bc6 UT: Detect template rendering errors
a69ba853a UT: Run test_plugins as separate process
55a51b2d6 Add horizon-dsvm-tempest-plugin-py27 job
f1654a37c Imported Translations from Zanata
6084b329f Add volume-group table actions for admin panel
508818d90 Revert "Fix osprofiler support in horizon"
4a67f7d79 Correct regular expression of volume type extra spec key
468184bd9 Consistency Group Snapshots detail url is wrong
b06657b07 Fix gate failures by a new pycodestyle
65545fb15 Imported Translations from Zanata
677dd6c93 Error should be reported when only a space is entered
9a0dfeb75 Imported Translations from Zanata
59cfc3fc3 Input limit on key name
c2a3c6203 Add volume group list/show support for admin panel
2842d7df3 Fix untrusted dashboard host
96aded3c3 Fix osprofiler support in horizon
a25d6b331 Fix developer panel when debug is set to False
a984ae43e pylint: fix raising-non-exception error
136a3e1de Imported Translations from Zanata
0c8de3eb4 Add non-voting integration tests job
4624438f1 Modify the error message when creating subnet
239bf1390 Show error if required fields are not filled when creating a port
9518f7a5e pylint: fix unexpected-keyword-arg error
0d39a5c33 pylint: Ignore existing misplaced-bare-raise error
150dcc3fb pylint: fix redundant-keyword-arg error
7c585e264 pylint: fix some refactor recommendations
957894963 pylint: fix too-many-nested-blocks/redefined-argument-from-local
ac7ac272b pylint: fix several coding convention violations
a15275449 Pop up the error message of creating a snapshot
3869e0c6b Imported Translations from Zanata
4dd8e3d40 pylint: fix bad-mcs-classmethod-argument warning
f6e1338cd pylint: fix unnecessary-pass warning
a8edb5059 pylint: fix simplifiable-if-statement/expression
786fb183e pylint: fix trailing-comma-tuple warning
e9f75a7bc pylint: fix useless-super-delegation warning
c076db20c pylint: fix len-as-condition warning
3143edef0 pylint: fix import-error
6ce323307 pylint: fixes several errors
8f39950a0 Document horizon policies
a1d28fc35 doc: Fix unnecessary spaces in folder paths
000da0f8f api.cinder: refactor microversioning logic
32bfbbf10 Use correct cinder API version for tenant_absolute_limits
a98468bef Change the default SESSION_ENGINE to use cached sessions
f3bd271fc pylint: fix bad-super-call
51251d9d6 pylint: Drop non-existing IPAddressField
86d1826a2 pylint: ignore access-member-before-definition explicitly
6e1348d05 pylint: fix several warnings
3a584a90c Show domain info in project and user detail panel
e832c8549 Allow to specify custom templates for clouds.yaml and openrc
59beb951a pylint: Fix consider-using-(dict|set)-comprehension
220b1346b Enable pylint in horizon
f02e7c5ad Imported Translations from Zanata
40e36a1c8 [doc] Fix: Tutorial: Building a Dashboard
643021a96 The name is too long and will exceed the page range
cc2a9c050 Provide partial-completed progress bar for DataTable status columns.
d910acb7d Change bug tracker URL for the vitrage-dashboard
59038e69b Imported Translations from Zanata
5e07d03f9 doc: Remove errant newline in the plugin tutorial
2a5612a3b volume_groups test: use create_mocks from test helper
d234cc6ba Imported Translations from Zanata
8cc055157 doc: Use `manage.py migrate`
90aa4b2b7 SG creation user taken straight to edit rules
6be52c401 Modify the prompt of update volume
3d899d907 the name needs to be word wrap
d4cea903b Error should be reported when only a space is entered
ecdeff4d8 Decorate Javascript i18n with a last_modified header
d0297a5ed Imported Translations from Zanata
6902aee3a Improve RBAC policies panel
f41df5a80 Fix folder path in "AngularJS Topic Guide"
e4df6cc8e Fixed description in Metadata tab in Edit/Create Image dialog
2a3b04ce6 Changed the message level for deleting some resources to info
e9f8abb65 Rework old customization templates and add new blocks
d65ebe205 Add RBAC policies feature to horizon dashboard
3b18a92d4 Imported Translations from Zanata
07070c437 Imported Translations from Zanata
72eff9c4f Migrate horizon-dsvm-tempest-plugin job to python3
9feead65c Fix command line of bandit-baseline
372b75c22 Do not load openstack_dashboard.settings in unit tests
467669417 Add "prev" link to instance page list pagination
87e2cf67f Imported Translations from Zanata
d641e6d10 Better support for community images
09115c715 tox: Reuse envdirs
26b838b7e Do not instantiate tables when a tab is not allowed
206e132e4 Imported Translations from Zanata
dc0ffaf2d Change session timeout to an idle timeout value
898997bad Fix a bug that horizon UT failure is ignored
c6baf0073 Allow to hide openrc and clouds.yaml download links
d32359e01 SHOW_KEYSTONE_V2_RC defaults to False
25b6706f5 Allow to run pep8/docs tox env with horizon plugins
ccb21ca7a python3: Fix handling of other protocol in SG rule
96912aea9 fix checking if enforcer was loaded
2cfe4bb08 Imported Translations from Zanata
2c3484690 Imported Translations from Zanata
82e8729f1 Stein deprecation notices on deprecated/remoevd features
e8f040d77 Use template for lower-constraints
f2828b910 Drop TripleO UI from horizon plugin registry
7b5e23244 Show password expiration date on user detail
9d6811945 Displays role assignment through group in user details
d92c7ab93 Imported Translations from Zanata
d66df58e2 Add group tab in user details view.
ba82055f0 Add role assignment tab in the user details view.
65b21e7f9 Fix images minimum ram and disk default values
864035146 Imported Translations from Zanata
10ec5d517 Update table header checkbox after searching
d6217b3e6 Instances column is shortened so it fits properly
65f14e5d7 Instance: show network info even if name is empty
d9c42ea0a Imported Translations from Zanata
decf86d9f translate instance action of rescue and unrescue
6e31767a2 Modify the prompt of update network
274706151 Fix precission issue when calculating image size in GB.
30c393aa5 Imported Translations from Zanata
f8eb17c59 Get scope token of current project when switch Keystone Provider
069329eeb Drop pki token check from Token class in openstack_auth
31116873f Imported Translations from Zanata
254e3791d Imported Translations from Zanata
49d9a5722 Update mailinglist from dev to discuss
9c4d2bbfd Error should be reported when only a space is entered
de69edd04 Add Fix django.contrib.auth.middleware monkey patching for APITestCase
c02b9fc2d Get rid of keys() usage
04a0fdafc Imported Translations from Zanata
e3bfad6ad Update geckodriver to version 0.23.0
fe6e395a6 Show ports without IP in instance table and detail
a0b72d54c Updating "Create an Encrypted Volume Type" Picture
1028a6580 Drop unnecessary LOCALE_PATHS from settings.py
e2360f9fe fix an issue with nova extension support checking
f520815d3 Modify the prompt of create routes and update routes.
0630be639 Remove "Change Password" from users table for non-admin users
8aea412a4 [doc]Fix: Modify content of configure access and security for instance
0cf4df4a6 Check if the alert box has a sibling element, delete its parent if it doesn't exist
a548d464d Update link addresses in documents
9faf1cd10 Fix bug about snapshot pagination
2a703b7a7 When creating a role, check if the role already exists
a9d6c7886 Make update status dialog less confusing
9d5a26663 Fix: Help text for encrypted volume type has incorrect description
9a820c488 Instance Action Log miss-translate some actions
3a3cb681c Ensures proper network name in subnet error message
e48077318 Fix wording for Cinder Volume QoS Create Extra Specs
b21add6e2 Document Django and Python support policy
ffa8b5404 Support of rescue instance in Horizon
6216715e7 add the assertWorkflowErrors
9810711e7 Make API calls in Volumes view parallel
23313c7ec Update the HTTP links to HTTPS.
55835c730 Fix: Inconsistent use of btn-danger
127de2412 Imported Translations from Zanata
a8006b444 Ignore error msg for gateway IP when gateway is disabled
b5c5d81dc Imported Translations from Zanata
02b6c1b40 Make table filters valid for every languages
a81098b1d fix the bug of checkSpinnerValue
fe6910473 Add domain support for specialized test login
cebe212d0 Bump hacking to 1.1.0
2b011289c Correct the word spell of "corporate firewall"
a3a4b93d3 Imported Translations from Zanata
a0226cf90 Imported Translations from Zanata
21b581b49 Imported Translations from Zanata
e062589c6 Only thorw one prompt when resizing instance error
5f4057f8b Show snapshots list correctly when launching instance
0d1636132 Fix django.contrib.auth.middleware monkey patching
b5d9aa16c Clarify middleware public methods
deb55b841 Call Glance list with certain image ids
47ba614f1 Fix bug of updating metadata for images
19a6c9bc6 Add "Create Router" button to admin panel
9495cd830 fix typo
de5df89ed prohibit click blank to close the mode box
f3094e6f8 rework memoized as a LRU cache with expiry
1f13da0e4 Server overview: display hypervisor name if available
1953c689e Properly calculate auth_url for WEBSSO from POST data
181cb29d8 Name is outside the page range
b7e276349 Remove setup.py check from pep8 job
ac8879641 Raise NotFound error when retrieved by not uuid
fc53f3526 Network and subnet names are empty
6d2fd17f0 Creating volume prompt message always contain name
18a882809 The metadata submit button ignore filtering
9219ada35 Imported Translations from Zanata
375c681ad doc: Fix title level
b2219d5aa Fix startdash and startpanel management commands
967fa3780 Fix documents in doc/source/install
b6941b5a1 Imported Translations from Zanata
31718cd1a Refactor app response for api request '/api/keystone/svc-catalog'
61ef739c7 Imported Translations from Zanata
fe7c028a5 Imported Translations from Zanata
8f5c1b8dc Increment versioning with pbr instruction
bdb3f9d98 Fix changing user's own password
1b5f8f867 Imported Translations from Zanata
35a718a51 Workflow uses parameter "viewModel.ready" to do the repetitive work.
f3450df50 Imported Translations from Zanata
a53f012fa support WEBSSO_KEYSTONE_URL
781c05a70 Imported Translations from Zanata
4ae8850de Do not raise invalid message when port does not exist
6f7deef34 Imported Translations from Zanata
a951f8eb6 Imported Translations from Zanata
9a1a8c435 Imported Translations from Zanata
7f1213639 Truncate table size column cause the exception
e02cf3742 Imported Translations from Zanata
132243183 Add hide_create_volume to LAUNCH_INSTANCE_DEFAULTS
4d6a1b327 Hide Swift network info in Horizon error message
6c2225bab Add enabled check in Backups panel
8c03ce0bc Move to 404 page if specified navigation not found
3acb28270 Replace @memoized_with_* with @memoized
1cc2b7fcf Imported Translations from Zanata
770afab1b Remove nose references from Horizon
32811eaf1 Update Volume Backup hint
eb4f87177 Add release note for the upgraded project detail view.
108fd0644 Imported Translations from Zanata
87f5e21b0 Select correct boot source when launching instance from different sources
b625d8bc0 Imported Translations from Zanata
789b626e3 Imported Translations from Zanata
ac9335893 Change user details view in a tab view
7c80aba5e Add groups tab in project details view.
6e754e5da Display users with role through group in users project details tab.
1456f7caa Disables Django 1.10 required attribute
97bc09d26 Imported Translations from Zanata
6066811d4 Update placeholder text of the searchbar
13c6fd0a1 Replace Searchlight-UI launchpad link with Storyboard
3ba15b452 Replace Chinese quotes with English quotes
0c8063980 Improve IP address formatting in Instance table
173144dfa Fixes a faulty if-check
8c22e6e09 Replace Chinese quotes with English quotes
e750c9d06 admin info: check required service for network tab
d68447452 Avoid UnhashableKeyWarning in api.nova.novaclient
cccf477c5 Revert "ROOT_PATH should not be appended to "sys.path""
71be92dd4 Fixed path after moving wsgi/django.wsgi to wsgi.py
5cb96dd6d Add user tab in project details view.
f9bb10b94 Avoid UnhashableKeyWarning in api.nova.extension_supported
5cb89042b Imported Translations from Zanata
19635237b fix volume status bug when restoring a Volume
0afe45010 Imported Translations from Zanata
e47f69540 [doc] Remove the redundant "required=True"
f269ab3b2 Fixes input validation in angular kepyairs.
af42aafbd Imported Translations from Zanata
58af80679 Move to '404' page when resource type or resource not found
e681bc2e2 ROOT_PATH should not be appended to "sys.path"
bfecbde4d switch documentation job to new PTI
53c738337 Run bandit job with python3
00c581431 Add py3-dj21 tox env for Django 2.1
de3e48479 Move requests to requirements.txt
ccdf8c55e Add django-debreach to horizon
33f579b1b Imported Translations from Zanata
797859beb Floating ip filter has no effect
a24aa0c87 fix incorrect quota exceeded error when creating snapshot
f843b6389 Make fields in image edit required
f5666eed0 Use new style for help in Angular ModalFormService
16c4f4c3a Don't expose endpoint URLs in the login form
d698f2bc1 import zuul job settings from project-config
a0e4508c9 Fix confusing variable names in unit tests
aa1ca195f Drop use_mox from horizon test helpers
4704b32a5 Drop mox usage in Selenium tests
cf959d1a5 Remove the unused settings
5f82accc4 Imported Translations from Zanata
e5d6f54e9 Make generic group check work with admin table
9de78764c add python 3.6 unit test job
5910b6b90 Fix issue where qos delete action returns error message
ee40a3693 Remove -u root as mysql is executed with root user
c6611abe1 Update keystone v3 admin URL in UT
45e8cc5fe Improved getQosPolicy error messages
7fc801895 Allow to specify redirections on single IdP scenarios
9fbdc8103 Revert "Network Topology graph "twitches""
9ec34b0b5 Imported Translations from Zanata
cf8c63d3f doc: Fix dashboard URL in Debian installation
9e3577087 Fix UnicodeError in build_reno in sphinx docs job
8050c1bfa Imported Translations from Zanata
3f868f37b Update reno for stable/rocky
6ae2a34d3 Imported Translations from Zanata
c42aacb27 Change project details view in a tab view.
db15eef58 Add package-lock.json which generate by npm
27f619cf9 Safer handling of return statement inside of OperationLogMiddleware
71cac4a14 Replaces the delete button with a disabling version
74a5400a6 Add delete domain action in angular domain panel
a42a56f49 Restores deletion in flat network topology
b170b54bf Display policy in server groups table instead of sub table


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

.gitignore                                         |    4 +-
.gitreview                                         |    1 +
.pylintrc                                          |   75 +-
.zuul.yaml                                         |  135 +-
.../figures/create_volume_type_encryption.png      |  Bin 161109 -> 33650 bytes
.../contributor/topics/javascript_testing.rst      |    2 +-
.../locale/en_GB/LC_MESSAGES/doc-configuration.po  | 4520 +++++++++++++++++
.../locale/id/LC_MESSAGES/doc-configuration.po     | 4272 ++++++++++++++++
...configure-access-and-security-for-instances.rst |   44 +-
horizon/base.py                                    |   13 +-
horizon/browsers/views.py                          |    3 +
.../dash_template/templates/dash_name/base.html    |   20 +-
.../panel_template/templates/panel_name/index.html |   23 +-
horizon/exceptions.py                              |    9 +-
horizon/forms/__init__.py                          |    2 +-
horizon/forms/fields.py                            |   13 +-
horizon/forms/views.py                             |    6 +-
horizon/karma.conf.js                              |    1 +
horizon/loaders.py                                 |    1 +
horizon/locale/ar/LC_MESSAGES/djangojs.po          |  425 ++
horizon/locale/cs/LC_MESSAGES/djangojs.po          |    5 +-
horizon/locale/de/LC_MESSAGES/djangojs.po          |    8 +-
horizon/locale/en_AU/LC_MESSAGES/djangojs.po       |    5 +-
horizon/locale/en_GB/LC_MESSAGES/djangojs.po       |    8 +-
horizon/locale/eo/LC_MESSAGES/djangojs.po          |    8 +-
horizon/locale/es/LC_MESSAGES/djangojs.po          |    5 +-
horizon/locale/fr/LC_MESSAGES/djangojs.po          |   12 +-
horizon/locale/id/LC_MESSAGES/djangojs.po          |    8 +-
horizon/locale/it/LC_MESSAGES/djangojs.po          |    5 +-
horizon/locale/ja/LC_MESSAGES/djangojs.po          |   16 +-
horizon/locale/ko_KR/LC_MESSAGES/djangojs.po       |   11 +-
horizon/locale/pl_PL/LC_MESSAGES/djangojs.po       |    5 +-
horizon/locale/pt_BR/LC_MESSAGES/djangojs.po       |    8 +-
horizon/locale/ru/LC_MESSAGES/django.po            |   17 +-
horizon/locale/ru/LC_MESSAGES/djangojs.po          |   38 +-
horizon/locale/tr_TR/LC_MESSAGES/djangojs.po       |    5 +-
horizon/locale/zh_CN/LC_MESSAGES/django.po         |   18 +-
horizon/locale/zh_CN/LC_MESSAGES/djangojs.po       |   14 +-
horizon/locale/zh_TW/LC_MESSAGES/djangojs.po       |    5 +-
horizon/management/commands/pull_catalog.py        |    2 +-
horizon/middleware/base.py                         |   26 +-
horizon/middleware/operation_log.py                |   11 +-
horizon/notifications.py                           |    5 +-
horizon/site_urls.py                               |    7 +-
horizon/static/framework/framework.module.js       |   30 +-
.../util/navigations/navigations.service.js        |    8 +-
.../util/navigations/navigations.service.spec.js   |   12 +
.../details/routed-details-view.controller.js      |   18 +-
.../details/routed-details-view.controller.spec.js |   52 +-
.../widgets/form/modal-form.controller.js          |    1 +
.../widgets/form/modal-form.controller.spec.js     |    7 +-
.../static/framework/widgets/form/modal-form.html  |    3 +
.../framework/widgets/form/modal-form.service.js   |    3 +-
.../widgets/form/modal-form.service.spec.js        |    4 +-
.../hz-magic-search-context.directive.js           |    2 +-
.../widgets/metadata/tree/metadata-tree.html       |    9 +-
.../framework/widgets/modal/simple-modal.html      |    2 +-
.../widgets/modal/simple-modal.service.js          |    3 +-
.../framework/widgets/table/hz-dynamic-table.html  |    2 +-
horizon/static/framework/widgets/toast/toast.html  |    2 +-
.../static/framework/widgets/wizard/wizard.html    |    2 +-
horizon/static/horizon/js/horizon.forms.js         |   33 +-
horizon/static/horizon/js/horizon.modals.js        |    6 +-
horizon/static/horizon/js/horizon.tables.js        |   19 +
horizon/tables/actions.py                          |   14 +-
horizon/tables/base.py                             |   38 +-
horizon/tables/formset.py                          |    6 +-
horizon/tables/views.py                            |   12 +-
horizon/tabs/base.py                               |   15 +-
horizon/templates/_login_footer.html               |   10 +
horizon/templates/_login_form_footer.html          |   11 +
horizon/templates/auth/_splash.html                |    5 -
.../templates/horizon/client_side/_confirm.html    |    2 +-
.../templates/horizon/common/_detail_header.html   |    2 +-
horizon/templatetags/angular.py                    |   11 +-
horizon/templatetags/shellfilter.py                |    2 +-
horizon/templatetags/truncate_filter.py            |    1 +
horizon/test/helpers.py                            |   27 +-
horizon/test/settings.py                           |    6 +-
horizon/test/unit/forms/test_forms.py              |   16 +-
horizon/test/unit/hacking/test_checks.py           |    8 +-
horizon/test/unit/middleware/test_base.py          |   78 +-
horizon/test/unit/tables/test_tables.py            |   65 +-
horizon/test/unit/tabs/test_tabs.py                |    3 +
horizon/test/unit/test_base.py                     |    3 +
horizon/test/unit/test_messages.py                 |    4 +-
horizon/test/unit/utils/test_memoized.py           |   89 +-
horizon/themes.py                                  |    2 +-
horizon/utils/babel_extract_angular.py             |   18 +-
horizon/utils/functions.py                         |    1 +
horizon/utils/memoized.py                          |  188 +-
horizon/utils/secret_key.py                        |    1 -
horizon/utils/validators.py                        |    1 +
horizon/workflows/base.py                          |   37 +-
lower-constraints.txt                              |    6 +-
openstack_auth/backend.py                          |   26 +-
openstack_auth/exceptions.py                       |    1 -
openstack_auth/forms.py                            |   24 +-
openstack_auth/locale/de/LC_MESSAGES/django.po     |   10 +-
openstack_auth/locale/en_GB/LC_MESSAGES/django.po  |    7 +-
openstack_auth/locale/eo/LC_MESSAGES/django.po     |    7 +-
openstack_auth/locale/fr/LC_MESSAGES/django.po     |    9 +-
openstack_auth/locale/id/LC_MESSAGES/django.po     |    9 +-
openstack_auth/locale/ja/LC_MESSAGES/django.po     |   10 +-
openstack_auth/locale/ko_KR/LC_MESSAGES/django.po  |   10 +-
openstack_auth/locale/pt_BR/LC_MESSAGES/django.po  |    9 +-
openstack_auth/locale/ru/LC_MESSAGES/django.po     |   94 +
openstack_auth/locale/zh_CN/LC_MESSAGES/django.po  |   10 +-
openstack_auth/middleware.py                       |   25 +
openstack_auth/plugin/base.py                      |   10 +-
openstack_auth/plugin/k2k.py                       |    3 +-
openstack_auth/policy.py                           |   28 +-
openstack_auth/urls.py                             |    9 +-
openstack_auth/user.py                             |   40 +-
openstack_auth/utils.py                            |   31 +-
openstack_auth/views.py                            |   43 +-
openstack_dashboard/api/_nova.py                   |  154 +
openstack_dashboard/api/base.py                    |    7 +-
openstack_dashboard/api/cinder.py                  |  120 +-
openstack_dashboard/api/glance.py                  |   44 +-
openstack_dashboard/api/keystone.py                |   48 +-
openstack_dashboard/api/microversions.py           |   38 +-
openstack_dashboard/api/neutron.py                 |  129 +-
openstack_dashboard/api/nova.py                    |  509 +-
openstack_dashboard/api/rest/glance.py             |    9 +-
openstack_dashboard/api/rest/json_encoder.py       |    3 +
openstack_dashboard/api/rest/keystone.py           |   24 +-
openstack_dashboard/api/rest/nova.py               |    7 +-
openstack_dashboard/api/rest/utils.py              |    2 +
openstack_dashboard/api/swift.py                   |   35 +-
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          |    4 +-
openstack_dashboard/contrib/developer/dashboard.py |    8 +-
.../contrib/developer/profiler/api.py              |   11 +-
.../dashboards/admin/aggregates/tables.py          |    4 +-
openstack_dashboard/dashboards/admin/dashboard.py  |    5 +-
.../dashboards/admin/flavors/workflows.py          |   19 +-
.../dashboards/admin/floating_ips/views.py         |    8 +-
.../dashboards/admin/group_types/__init__.py       |    0
.../dashboards/admin/group_types/forms.py          |  107 +
.../dashboards/admin/group_types/panel.py          |   24 +
.../dashboards/admin/group_types/specs/__init__.py |    0
.../dashboards/admin/group_types/specs/forms.py    |   81 +
.../dashboards/admin/group_types/specs/tables.py   |   87 +
.../dashboards/admin/group_types/specs/urls.py     |   22 +
.../dashboards/admin/group_types/specs/views.py    |  125 +
.../dashboards/admin/group_types/tables.py         |  134 +
.../templates/group_types/_create_group_type.html  |   16 +
.../templates/group_types/_update_group_type.html  |   20 +
.../templates/group_types/create_group_type.html   |    7 +
.../templates/group_types/specs/_create.html       |    7 +
.../templates/group_types/specs/_edit.html         |    7 +
.../templates/group_types/specs/_index.html        |   13 +
.../templates/group_types/specs/create.html        |   14 +
.../templates/group_types/specs/edit.html          |   14 +
.../templates/group_types/specs/index.html         |   12 +
.../templates/group_types/update_group_type.html   |   11 +
.../dashboards/admin/group_types/urls.py           |   31 +
.../dashboards/admin/group_types/views.py          |  102 +
.../dashboards/admin/images/views.py               |    2 +-
.../dashboards/admin/info/tables.py                |    3 +-
openstack_dashboard/dashboards/admin/info/tabs.py  |    1 +
.../dashboards/admin/instances/forms.py            |    6 +
.../dashboards/admin/instances/tables.py           |   10 +-
.../instances/templates/instances/_rescue.html     |   27 +
.../instances/templates/instances/rescue.html      |    7 +
.../dashboards/admin/instances/urls.py             |    1 +
.../dashboards/admin/instances/views.py            |   57 +-
.../dashboards/admin/metadata_defs/forms.py        |    9 -
.../dashboards/admin/metadata_defs/views.py        |    3 +-
.../dashboards/admin/networks/forms.py             |    5 +-
.../dashboards/admin/networks/subnets/workflows.py |   31 +-
.../dashboards/admin/networks/urls.py              |    6 +-
.../dashboards/admin/networks/views.py             |    4 +-
.../dashboards/admin/rbac_policies/__init__.py     |    0
.../dashboards/admin/rbac_policies/forms.py        |  168 +
.../dashboards/admin/rbac_policies/panel.py        |   44 +
.../dashboards/admin/rbac_policies/tables.py       |   82 +
.../dashboards/admin/rbac_policies/tabs.py         |   57 +
.../templates/rbac_policies/_create.html           |    7 +
.../templates/rbac_policies/_detail_overview.html  |   18 +
.../templates/rbac_policies/_update.html           |    7 +
.../templates/rbac_policies/create.html            |    7 +
.../templates/rbac_policies/detail.html            |   20 +
.../templates/rbac_policies/update.html            |    7 +
.../dashboards/admin/rbac_policies/urls.py         |   30 +
.../dashboards/admin/rbac_policies/views.py        |  144 +
.../dashboards/admin/routers/forms.py              |   21 +
.../dashboards/admin/routers/tables.py             |    7 +-
.../dashboards/admin/routers/urls.py               |    1 +
.../dashboards/admin/routers/views.py              |    7 +
.../dashboards/admin/snapshots/forms.py            |   20 +-
.../dashboards/admin/snapshots/tables.py           |    8 +-
.../dashboards/admin/snapshots/views.py            |   30 +-
.../dashboards/admin/vg_snapshots/__init__.py      |    0
.../dashboards/admin/vg_snapshots/panel.py         |   20 +
.../dashboards/admin/vg_snapshots/tables.py        |   66 +
.../dashboards/admin/vg_snapshots/tabs.py          |   29 +
.../templates/vg_snapshots/_detail_overview.html   |   52 +
.../dashboards/admin/vg_snapshots/urls.py          |   24 +
.../dashboards/admin/vg_snapshots/views.py         |   85 +
.../dashboards/admin/volume_groups/__init__.py     |    0
.../dashboards/admin/volume_groups/forms.py        |   24 +
.../dashboards/admin/volume_groups/panel.py        |   20 +
.../dashboards/admin/volume_groups/tables.py       |   73 +
.../dashboards/admin/volume_groups/tabs.py         |   29 +
.../templates/volume_groups/_delete.html           |    9 +
.../templates/volume_groups/_detail_overview.html  |   44 +
.../templates/volume_groups/_remove_vols.html      |    7 +
.../templates/volume_groups/delete.html            |    7 +
.../templates/volume_groups/remove_vols.html       |    7 +
.../dashboards/admin/volume_groups/urls.py         |   34 +
.../dashboards/admin/volume_groups/views.py        |  103 +
.../dashboards/admin/volume_groups/workflows.py    |   22 +
.../dashboards/admin/volume_types/extras/forms.py  |   26 +-
.../admin/volume_types/qos_specs/tables.py         |    8 +-
.../_create_volume_type_encryption.html            |    2 +-
.../_update_volume_type_encryption.html            |    2 +-
.../templates/volume_types/qos_specs/_create.html  |   20 +-
.../dashboards/admin/volumes/forms.py              |    8 +-
.../dashboards/admin/volumes/tables.py             |    8 +-
.../dashboards/admin/volumes/tabs.py               |    5 +-
.../templates/volumes/_detail_overview.html        |  126 +
.../dashboards/admin/volumes/views.py              |   77 +-
.../application_credentials/_detail_overview.html  |    4 +-
.../dashboards/identity/domains/workflows.py       |    7 +-
.../dashboards/identity/groups/forms.py            |    6 +
.../dashboards/identity/groups/views.py            |    3 +-
.../identity/identity_providers/protocols/views.py |    3 -
.../dashboards/identity/identity_providers/urls.py |    2 +-
.../identity/projects/groups/__init__.py           |    0
.../dashboards/identity/projects/groups/tables.py  |   33 +
.../dashboards/identity/projects/tables.py         |    2 +-
.../dashboards/identity/projects/tabs.py           |  236 +
.../templates/projects/_detail_overview.html       |   12 +-
.../dashboards/identity/projects/users/__init__.py |    0
.../dashboards/identity/projects/users/tables.py   |   41 +
.../dashboards/identity/projects/views.py          |   21 +-
.../dashboards/identity/projects/workflows.py      |    8 +-
.../dashboards/identity/roles/views.py             |    2 +-
.../identity/domains/actions/actions.module.js     |   20 +
.../identity/domains/actions/delete.service.js     |  153 +
.../domains/actions/delete.service.spec.js         |  151 +
.../roles/actions/create.action.service.js         |   34 +-
.../identity/roles/actions/edit.action.service.js  |    4 +-
.../dashboard/identity/roles/roles.module.js       |    3 +-
.../users/actions/workflow/workflow.service.js     |    7 +-
.../dashboards/identity/users/forms.py             |    5 +-
.../dashboards/identity/users/groups/__init__.py   |    0
.../dashboards/identity/users/groups/tables.py     |   23 +
.../identity/users/role_assignments/__init__.py    |    0
.../identity/users/role_assignments/tables.py      |  107 +
.../dashboards/identity/users/tables.py            |    5 +-
.../dashboards/identity/users/tabs.py              |  156 +
.../users/templates/users/_detail_overview.html    |   39 +-
.../dashboards/identity/users/views.py             |   54 +-
.../dashboards/project/api_access/tables.py        |   18 +-
.../dashboards/project/api_access/views.py         |   26 +-
.../dashboards/project/backups/forms.py            |    3 +-
.../dashboards/project/backups/panel.py            |    6 +
.../backups/templates/backups/_create_backup.html  |   13 +-
.../dashboards/project/cg_snapshots/tables.py      |    2 +-
.../templates/cg_snapshots/_detail_overview.html   |    8 +-
.../templates/cg_snapshots/create.html             |    2 +-
.../templates/cg_snapshots/update.html             |    2 +-
.../dashboards/project/cgroups/forms.py            |    4 +-
.../templates/cgroups/_create_snapshot.html        |    2 +-
.../templates/cgroups/_detail_overview.html        |    6 +-
.../cgroups/templates/cgroups/clone_cgroup.html    |    2 +-
.../cgroups/templates/cgroups/create_snapshot.html |    2 +-
.../project/cgroups/templates/cgroups/delete.html  |    2 +-
.../cgroups/templates/cgroups/remove_vols.html     |    2 +-
.../project/cgroups/templates/cgroups/update.html  |    2 +-
.../dashboards/project/cgroups/workflows.py        |   38 +-
.../dashboards/project/dashboard.py                |    1 +
.../dashboards/project/floating_ips/views.py       |    8 +-
.../dashboards/project/floating_ips/workflows.py   |    8 +-
.../dashboards/project/images/images/forms.py      |    1 +
.../dashboards/project/images/images/tables.py     |   13 +-
.../dashboards/project/images/snapshots/forms.py   |   16 +-
.../dashboards/project/images/utils.py             |   23 +-
.../dashboards/project/instances/audit_tables.py   |    5 +
.../dashboards/project/instances/forms.py          |   42 +-
.../dashboards/project/instances/tables.py         |   61 +-
.../dashboards/project/instances/tabs.py           |    3 +-
.../templates/instances/_detail_overview.html      |   40 +-
.../templates/instances/_instance_flavor.html      |    4 +-
.../templates/instances/_instance_ips.html         |   20 +-
.../instances/templates/instances/_rescue.html     |   27 +
.../instances/templates/instances/rescue.html      |    7 +
.../dashboards/project/instances/urls.py           |    1 +
.../dashboards/project/instances/views.py          |   77 +-
.../project/instances/workflows/create_instance.py |    9 +-
.../project/instances/workflows/resize_instance.py |   10 +-
.../dashboards/project/key_pairs/forms.py          |   13 +-
.../dashboards/project/key_pairs/tables.py         |    1 +
.../client_side/_balloon_container.html            |    2 -
.../dashboards/project/networks/forms.py           |    3 +-
.../dashboards/project/networks/ports/sg_base.py   |    8 +-
.../dashboards/project/networks/ports/workflows.py |   14 +
.../dashboards/project/networks/subnets/views.py   |    3 +-
.../project/networks/subnets/workflows.py          |   49 +-
.../templates/networks/_detail_overview.html       |    2 +-
.../templates/networks/ports/_detail_overview.html |   10 +-
.../networks/subnets/_detail_overview.html         |    6 +-
.../dashboards/project/networks/urls.py            |    6 +-
.../dashboards/project/networks/workflows.py       |   49 +-
.../dashboards/project/overview/views.py           |    2 +-
.../dashboards/project/routers/forms.py            |    9 +-
.../templates/routers/_detail_overview.html        |    2 +-
.../dashboards/project/security_groups/forms.py    |    2 +-
.../dashboards/project/security_groups/views.py    |    5 +-
.../dashboards/project/snapshots/tables.py         |    4 +-
.../templates/snapshots/_detail_overview.html      |    8 +-
.../project/containers/containers.controller.js    |   12 +-
.../containers/containers.controller.spec.js       |    2 +-
.../project/containers/create-container.help.html  |   20 +-
.../keypair/create-keypair.controller.js           |   11 +-
.../launch-instance/keypair/create-keypair.html    |    7 +
.../keypair/import-keypair.controller.js           |    9 +-
.../launch-instance/keypair/import-keypair.html    |    7 +
.../launch-instance/keypair/keypair.controller.js  |    7 +-
.../launch-instance-model.service.js               |   80 +-
.../launch-instance-model.service.spec.js          |  137 +-
.../workflow/launch-instance/network/network.html  |    8 +-
.../server-groups/server-group-details.html        |   13 -
.../server-groups/server-groups.controller.js      |   16 +-
.../server-groups/server-groups.html               |   14 +-
.../server-groups/server-groups.spec.js            |    7 +-
.../launch-instance/source/source.controller.js    |   54 +-
.../source/source.controller.spec.js               |   28 +-
.../workflow/launch-instance/source/source.html    |    4 +-
.../dashboards/project/vg_snapshots/views.py       |    9 +-
.../dashboards/project/volume_groups/forms.py      |   13 +-
.../dashboards/project/volume_groups/tables.py     |   15 +-
.../templates/volume_groups/_snapshot_limits.html  |   14 +-
.../templates/volume_groups/clone_group.html       |    2 +-
.../dashboards/project/volume_groups/views.py      |   20 +-
.../dashboards/project/volumes/forms.py            |   34 +-
.../dashboards/project/volumes/tables.py           |    5 +-
.../templates/volumes/_detail_overview.html        |   12 +-
.../dashboards/project/volumes/views.py            |   52 +-
.../dashboards/settings/user/forms.py              |    5 +-
.../enabled/_1360_project_volume_groups.py         |    3 +-
.../enabled/_1370_project_vg_snapshots.py          |    3 +-
.../enabled/_2250_admin_volume_groups.py           |   10 +
.../enabled/_2260_admin_vg_snapshots.py            |   10 +
.../enabled/_2270_admin_group_types_panel.py       |   10 +
.../enabled/_2350_admin_rbac_policies_panel.py     |   10 +
openstack_dashboard/hooks.py                       |    1 +
.../local/local_settings.py.example                |   55 +-
.../locale/as/LC_MESSAGES/django.po                |   49 +-
.../locale/bn_IN/LC_MESSAGES/django.po             |   48 +-
.../locale/brx/LC_MESSAGES/django.po               |   48 +-
.../locale/cs/LC_MESSAGES/django.po                |   68 +-
.../locale/cs/LC_MESSAGES/djangojs.po              |   11 +-
.../locale/de/LC_MESSAGES/django.po                |  741 ++-
.../locale/de/LC_MESSAGES/djangojs.po              |  217 +-
.../locale/en_AU/LC_MESSAGES/django.po             |   67 +-
.../locale/en_AU/LC_MESSAGES/djangojs.po           |    8 +-
.../locale/en_GB/LC_MESSAGES/django.po             |  525 +-
.../locale/en_GB/LC_MESSAGES/djangojs.po           |  161 +-
.../locale/eo/LC_MESSAGES/django.po                |  167 +-
.../locale/eo/LC_MESSAGES/djangojs.po              |  186 +-
.../locale/es/LC_MESSAGES/django.po                |   91 +-
.../locale/es/LC_MESSAGES/djangojs.po              |   44 +-
.../locale/fr/LC_MESSAGES/django.po                | 1085 +++-
.../locale/fr/LC_MESSAGES/djangojs.po              |  433 +-
.../locale/gu/LC_MESSAGES/django.po                |   49 +-
.../locale/hi/LC_MESSAGES/django.po                |   22 +-
.../locale/id/LC_MESSAGES/django.po                |  801 ++-
.../locale/id/LC_MESSAGES/djangojs.po              |  181 +-
.../locale/it/LC_MESSAGES/django.po                |   63 +-
.../locale/it/LC_MESSAGES/djangojs.po              |   10 +-
.../locale/ja/LC_MESSAGES/django.po                | 1034 +++-
.../locale/ja/LC_MESSAGES/djangojs.po              |  210 +-
.../locale/kn/LC_MESSAGES/django.po                |   50 +-
.../locale/ko_KR/LC_MESSAGES/django.po             |  709 ++-
.../locale/ko_KR/LC_MESSAGES/djangojs.po           |  188 +-
.../locale/kok/LC_MESSAGES/django.po               |   48 +-
.../locale/ks/LC_MESSAGES/django.po                |   48 +-
.../locale/mai/LC_MESSAGES/django.po               |   48 +-
.../locale/mni/LC_MESSAGES/django.po               |   48 +-
.../locale/mr/LC_MESSAGES/django.po                |   48 +-
.../locale/ne/LC_MESSAGES/django.po                |   48 +-
.../locale/nl_NL/LC_MESSAGES/django.po             | 3311 ------------
.../locale/pa_IN/LC_MESSAGES/django.po             |   50 +-
.../locale/pl_PL/LC_MESSAGES/django.po             |   63 +-
.../locale/pt_BR/LC_MESSAGES/django.po             |  450 +-
.../locale/pt_BR/LC_MESSAGES/djangojs.po           |  133 +-
.../locale/ru/LC_MESSAGES/django.po                | 1042 +++-
.../locale/ru/LC_MESSAGES/djangojs.po              |  361 +-
.../locale/sr/LC_MESSAGES/django.po                | 3213 ------------
.../locale/ta/LC_MESSAGES/django.po                |   48 +-
.../locale/tr_TR/LC_MESSAGES/django.po             |   67 +-
.../locale/tr_TR/LC_MESSAGES/djangojs.po           |   34 +-
.../locale/ur/LC_MESSAGES/django.po                |   50 +-
.../locale/zh_CN/LC_MESSAGES/django.po             | 1102 +++-
.../locale/zh_CN/LC_MESSAGES/djangojs.po           |  300 +-
.../locale/zh_TW/LC_MESSAGES/django.po             |   66 +-
.../locale/zh_TW/LC_MESSAGES/djangojs.po           |   31 +-
.../management/commands/extract_messages.py        |    1 +
.../management/commands/make_web_conf.py           |    2 +
.../management/commands/upgrade_check.py           |  233 +
openstack_dashboard/settings.py                    |   78 +-
openstack_dashboard/static/app/app.module.js       |    3 +-
.../app/core/images/actions/actions.module.js      |   15 +-
.../delete-image-selected-button.template.html     |    1 +
.../actions/delete-image-selected.component.js     |   74 +
.../delete-image-selected.component.spec.js        |   97 +
.../actions/delete-image-selected.template.html    |    7 +
.../core/images/filters/image-visibility.filter.js |    2 +
.../static/app/core/images/images.module.js        |    1 +
.../images/steps/create-volume/create-volume.html  |    6 +-
.../core/images/steps/edit-image/edit-image.html   |   12 +-
.../core/keypairs/actions/create.description.html  |    3 +-
.../keypairs/actions/create.key-type.controller.js |   45 +
.../app/core/keypairs/actions/create.key-type.html |    9 +
.../app/core/keypairs/actions/create.service.js    |   26 +-
.../actions/import.public-key.controller.js        |    7 +
.../actions/import.public-key.controller.spec.js   |    4 +
.../core/keypairs/actions/import.public-key.html   |    3 +
.../app/core/keypairs/actions/import.service.js    |   22 +-
.../static/app/core/keypairs/keypairs.module.js    |    8 +-
.../core/openstack-service-api/neutron.service.js  |   39 +-
.../openstack-service-api/neutron.service.spec.js  |   46 +-
.../app/core/server_groups/server-groups.module.js |    1 +
.../static/app/core/trunks/trunks.module.js        |    1 +
.../dashboard/scss/components/_help_panel.scss     |    3 +-
.../static/js/horizon.flatnetworktopology.js       |    6 +-
.../static/js/horizon.networktopology.js           |    5 +-
.../static/js/horizon.networktopologycommon.js     |   64 +-
openstack_dashboard/templates/_footer.html         |   11 +-
openstack_dashboard/templates/_login_footer.html   |    3 -
.../templates/_login_form_footer.html              |    6 -
openstack_dashboard/templates/angular.html         |    3 +
openstack_dashboard/templates/auth/_splash.html    |    5 +
openstack_dashboard/templates/base.html            |   10 +-
.../templates/context_selection/_project_list.html |    2 +-
.../templates/context_selection/_region_list.html  |    3 +-
.../templates/horizon/_custom_head_js.html         |   10 +
.../templates/horizon/_custom_meta.html            |   10 +
.../templatetags/context_selection.py              |    6 +-
openstack_dashboard/test/helpers.py                |  268 +-
.../pages/project/network/floatingipspage.py       |    6 +-
.../pages/settings/changepasswordpage.py           |   60 +-
openstack_dashboard/test/settings.py               |   16 +-
openstack_dashboard/test/test_data/glance_data.py  |   58 +-
.../test/test_data/keystone_data.py                |   20 +-
openstack_dashboard/test/test_data/neutron_data.py |   35 +-
.../test/unit/api/rest/test_keystone.py            |   76 +-
.../test/unit/api/rest/test_nova.py                |   28 +-
openstack_dashboard/test/unit/api/test_base.py     |    4 +-
openstack_dashboard/test/unit/api/test_cinder.py   |    6 +-
openstack_dashboard/test/unit/api/test_glance.py   |   35 +-
openstack_dashboard/test/unit/api/test_keystone.py |   11 +-
openstack_dashboard/test/unit/api/test_neutron.py  |   18 +-
openstack_dashboard/test/unit/api/test_nova.py     |   86 +-
openstack_dashboard/test/unit/test_themes.py       |    7 +-
openstack_dashboard/theme_settings.py              |    2 +-
.../themes/example/static/_styles.scss             |    0
.../themes/example/static/_variables.scss          |    1 +
.../themes/example/static/js/my_analytics_js.js    |    1 +
.../themes/example/static/js/my_custom_js.js       |    1 +
.../themes/example/templates/auth/_login_form.html |    9 +
.../themes/example/templates/auth/login.html       |    5 +
.../themes/example/templates/base.html             |   17 +
openstack_dashboard/usage/base.py                  |    3 +-
openstack_dashboard/usage/tables.py                |    2 +-
openstack_dashboard/utils/config_types.py          |    2 +-
openstack_dashboard/wsgi.py                        |    2 +-
playbooks/horizon-devstack-integration/post.yaml   |    5 +
playbooks/horizon-devstack-integration/pre.yaml    |   10 +
playbooks/horizon-devstack-integration/run.yaml    |    6 +
...ate-button-to-admin-panel-02cbe5d96036ac4c.yaml |    4 +
.../add-domain-dropdown-65006187e5605735.yaml      |    2 +-
...s-customization-templates-30384e91c5565328.yaml |   25 +
...p-mitigate-breach-attacks-dd54b705e22363b0.yaml |    7 +
.../bp-neutron-rbac-policies-9cv77nu2k93ieh4r.yaml |   11 +
...p-support-rescue-instance-a7b8578c395abd3e.yaml |    5 +
.../notes/bug-1785263-46edf7313d833b4c.yaml        |   12 +
.../notes/bug-1792524-7497aabcf6bc1e81.yaml        |   13 +
...recate-lbaas-v1-dashboard-1f9c48d7c6997b1f.yaml |    2 +-
.../deprecations-in-stein-4090a0b816ba2d81.yaml    |   18 +
.../drop-LBaaS-v1-dashboard-d767b0bde5274af5.yaml  |    2 +-
...action-strings-attributes-64f0cb0323f629ee.yaml |    2 +-
.../notes/drop-pki-token-d8bc4d665887aedf.yaml     |   10 +
.../generic-volume-groups-c0bf175f5d7d3a37.yaml    |    9 +
.../idle-session-timeout-ab47085807881afe.yaml     |   11 +
...faults-hide-create-volume-774549bebb6e7c82.yaml |    7 +
.../openrc-clouds-yaml-link-f1642b77e25f08ba.yaml  |   18 +
.../pluggable-workflow-steps-c919cdd8b0cbea55.yaml |    2 +-
.../notes/policy-sync-stein-82531c937609ebb2.yaml  |   12 +
...hange-pw-from-users-table-ef8d45a4a95762e0.yaml |    5 +
.../notes/session-engine-bc6305bfb74a9beb.yaml     |   22 +
...-keystone-v2-openrc-false-c7e904473da2f823.yaml |   10 +
.../notes/story-2003657-79dec309cb6fa060.yaml      |    6 +
...pport-websso_keystone_url-f663bbf40a5855c9.yaml |    8 +
.../vpnaas-panel-splitout-5783df1675bc984f.yaml    |    2 +-
...ebsso-default-redirection-1acf25d32ac00dd1.yaml |    6 +
releasenotes/source/folsom.rst                     |    2 +-
releasenotes/source/index.rst                      |    1 +
.../source/locale/de/LC_MESSAGES/releasenotes.po   | 4454 ----------------
.../locale/en_GB/LC_MESSAGES/releasenotes.po       | 5190 -------------------
.../source/locale/id/LC_MESSAGES/releasenotes.po   | 5324 --------------------
.../source/locale/ja/LC_MESSAGES/releasenotes.po   | 4902 ------------------
.../locale/ko_KR/LC_MESSAGES/releasenotes.po       | 1463 ------
.../locale/pt_BR/LC_MESSAGES/releasenotes.po       | 3927 ---------------
.../locale/zh_CN/LC_MESSAGES/releasenotes.po       |  508 --
releasenotes/source/rocky.rst                      |    6 +
requirements.txt                                   |    3 +
setup.cfg                                          |    8 +-
test-requirements.txt                              |    6 +-
tools/executable_files.txt                         |    1 +
tools/find_settings.py                             |   58 +
tox.ini                                            |   63 +-
603 files changed, 50237 insertions(+), 37829 deletions(-)


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

diff --git a/requirements.txt b/requirements.txt
index a88915455..336f62fa6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,0 +17 @@ django-compressor>=2.0 # MIT
+django-debreach>=1.4.2 # BSD License (2 clause)
@@ -26,0 +28 @@ oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
+oslo.upgradecheck>=0.1.1 # Apache-2.0
@@ -39,0 +42 @@ PyYAML>=3.12 # MIT
+requests>=2.14.2 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index e94e6e149..3e33d214d 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -10 +10 @@
-hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+hacking>=1.1.0 # Apache-2.0
@@ -11,0 +12 @@ hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
+astroid==2.1.0;python_version>='3.0' # LGPLv2.1
@@ -19 +20,2 @@ nodeenv>=0.9.4 # BSD
-requests>=2.14.2 # Apache-2.0
+python-memcached>=1.59 # PSF
+pylint==2.2.2;python_version>='3.0' # GPLv2






More information about the Release-announce mailing list