[release-announce] [horizon] horizon 13.0.0 (queens)

no-reply at openstack.org no-reply at openstack.org
Wed Feb 28 11:43:52 UTC 2018


We are glad to announce the release of:

horizon 13.0.0: OpenStack Dashboard

This release is part of the queens release series.

Download the package from:

    https://tarballs.openstack.org/horizon/

For more details, please see below.

Changes in horizon 12.0.0.0rc1..13.0.0
--------------------------------------

a6cdd29 Imported Translations from Zanata
771914a Imported Translations from Zanata
cdb0023 Imported Translations from Zanata
e1402b1 Move test template to more proper directory
85d014b Imported Translations from Zanata
f911da5 Imported Translations from Zanata
16572c9 Fix collectstatic in case of theme customization
1becb39 Update UPPER_CONSTRAINTS_FILE for stable/queens
d3b403a Update .gitreview for stable/queens
4a3f0dc Network topology "Graph" tab always shows nothing
4e4429b Imported Translations from Zanata
7c261e8 Imported Translations from Zanata
afbd9cb Remove empty test file
edbe5ea Change http link to https link
a0e207a Imported Translations from Zanata
6741019 Sync nova policy
9d102cb Imported Translations from Zanata
3f585d3 Views accessible via url even if user doesn't match policy rules
17b2c25 Missing VNIC type parameter when using it to create a port
02119d8 Imported Translations from Zanata
4544282 Use nova os-services to retrieve host list
077163a Enable to refresh ngdetails view
556ccbe relnote: clearly mention django-openstack-auth needs uninstall
7f032e9 Imported Translations from Zanata
af63c00 fix english grammatical error
1941d34 operation_log: Mask more password fields by default
6294494 i18n: Fix untranslated messages
4b1131a i18n: Do not include html directives in translation strings
388ec03 Imported Translations from Zanata
7b45b7a Fix back button on Firefox and Safari
9e5eb9e Imported Translations from Zanata
4b70f1d Correct odd exception message
7dd4d7a Remove 'tools/install_venv.py' reference paragraph
aa669f0 Trunks panel: admin panel
2e67f24 Ensure to mark exception message as tranlation strings
c9a143f Horizon UI message when browser cookies disabled
49fd528 i18n: Allow translator to control the word order (trunk)
82d9ea6 Imported Translations from Zanata
c4a380f Zuul: Remove project name
c7bc924 Tabs in launch server wizard not depending on OPENSTACK_NOVA_EXTENSIONS_BLACKLIST
b28b8e2 Change django.utils.log.NullHandler to logging.NullHandler
aec0163 Imported Translations from Zanata
f257482 Handle novaclient ec2 cert support removal
117ec5d Sync keystone policy
4f0047b Imported Translations from Zanata
ef52e8e comment was wrongly declared
705c52b Trunks panel: eliminate spinner at create/edit
e598695 Ignore node_modules from test target
d2187b4 Imported Translations from Zanata
ca74561 Updated from global requirements
3e8088b Improve exception message in network related Batch/DeleteAction
a96e632 Avoid duplicated message in Batch/DeleteAction
faaa4ae Avoid sending error message twice in BatchAction
c6d1e16 Add note for Django 1.8-1.10 support in relnote and doc
5179f33 Imported Translations from Zanata
9e9a17c Imported Translations from Zanata
db2aecd Imported Translations from Zanata
869127e doc: Move the note to an appropriate place
7d1b89e Imported Translations from Zanata
42fe004 elif replace if
bb76a85 Imported Translations from Zanata
75e4e75 Make serial console resizable
9242390 Add setting for user menu links
7d0d8be Text clippin in window security groups Fixed text overflow from form by removing limiting max-height media in scss.
f35eaa2 Correctly show no data message in Network Topology
3929a8b Security group quota error handling
735e458 font for transfer table heading enlarged
c5901fe Updated from global requirements
54365d7 Fix api.keystone.is_cloud_admin/is_domain_admin handling with new policies
4391567 Imported Translations from Zanata
3220cbf Better designed 404 error page
e129ba9 Updated from global requirements
b52f8d9 Add Enable/Disable User action for Angular users panel
c174036 Add Change Password Action for Angular users panel
5a8e218 Imported Translations from Zanata
dda139b [doc] Correct the wrong 'System' tab
8b363fb Imported Translations from Zanata
b7f24dd Make neutron quota names translatable
659f86d Imported Translations from Zanata
ea06895 doc: update policy related topics
5a11dd6 doc: cleanup unnecessary vertical lines
38f6fbd doc: Update project port create
dc7d258 quota: Use neutron default quota (read-only) API
788388c usage: split out the limit related logic into ProjectUsageView
f514aa0 Imported Translations from Zanata
a05c2cc Rename tox_venvlist (2/2)
11e36d4 Rename tox_venvlist (1/2)
8840fdb Orders the projects and roles in user creation combos
4556a3d Imported Translations from Zanata
e7505cf Trunks panel: simplify code for easier testing
86e4e92 Add Edit action for Angular users panel
3a7466c Add Angular keystone user deletion action
a65ece7 Handle unicode when downloading transfer credentials
2d7a343 Imported Translations from Zanata
e0fb453 quota: Move neutron quota logic in identity.projects.views
091121b Imported Translations from Zanata
66e868a Switch settings password tests to mock
dc73248 Implement create_mocks decorator to make mocks easier
27b1690 [doc] Correct the wrong 'System' tab
6c32678 [doc] Correct the wrong volumes tab
b5fdf50 Upload the latest screenshots
3278e0c [doc] Reorganize the content of horizon Admin tab
a1c8f6c Use 'trimmed' for blocktrans in multi-line strings
6572af2 Remove the redundant codes
262f099 tox: run doc8 in pep8
26bc131 [doc] Modify the content of the configure access and security for instances
8bedc98 [doc] Add the missing editable properties for image
77ed0e3 doc: drop horizon-plugins' content from user/admin guide
2488cef Skip horizon-dsvm-tempest-plugin when touching test code only
d6790e5 Imported Translations from Zanata
6baf8c9 Handle float('inf') in tenant_quota_usages properly
4d7f5e2 Reorganize the content of horizon project tab
0d1d22c Switch Glance-related tests (dashboards.project.images) to mock
758ba27 Imported Translations from Zanata
8f1d426 Imported Translations from Zanata
8373701 Avoid Unhashable warning in api.rest.nova
3aee4cb Fix incorrect volume type value in ng images create volume form
687d224 Fix displayed type for instance snapshots
a18c49c Imported Translations from Zanata
7396d47 Imported Translations from Zanata
6c45c47 Drop unnecessary executable flags
3c872e5 Switch Glance-related tests (dashboards.admin.images) to mock
ec0b29f Switch Glance API tests to mock
09efe2d Allow regular users to specify VNIC type for port
8ae967a Make enabled filenames consistent
5d40431 Handle binding__host_id conditionally
e4a8dcd Imported Translations from Zanata
fb9699f Imported Translations from Zanata
f870114 Updated from global requirements
589c6de Remove unnecessary module injection
7d7de3b Add more actions to admin.
337ef4d Disable flavor ModifyAccess action while the flavor is public
cd49510 Updating default keystone API verson to 3
154ddab Drop flavor name validation in horizon side.
8520b4d Sync cinder policy
69aff8b Tools to check policy differences
0f59818 Imported Translations from Zanata
bdba740 Updated from global requirements
a774fa3 Use Cinder API v3 by default
3d47108 Imported Translations from Zanata
8c25bb7 Update Ubuntu horizon installation instruction
d1225c6 Floating IP: Expose description field in form and tables
6164fe0 Imported Translations from Zanata
f929d39 Do not make duplicate requests to Glance for image names in admin panel
6c4d254 Refactor swap_filter in instance views
fae118d Imported Translations from Zanata
5424c63 Add create and import key pair actions
ebaf633 Sync glance policy
1340904 quota: Use network quota field names consistently
cd3f3e5 quota: Use neutron quota_details API to retrieve usage
df0a18e quota: retrieve quota (limit) and usage at once
34fb3e5 quota: Disable nova-network quotas completely
c999239 Prevent non-admin users from detaching interfaces
7dac18b Add text download service
4c8f4a0 Add Angular keystone user creation action
413e772 API tests: Avoid UnhashableKeyWarning
365df57 python3: long does not exist in python 3
6662771 Imported Translations from Zanata
b0e696c Optional removal of V2 openrc file
84216cb Always display server description
a57d8b0 doc: use "python manage.py" directly rather "tox -e manage"
38690f1 Define default POLICY_DIRS value
a42f58d Allow to skip API calls to Neutron in instance tables
17b7e91 Show volume snapshots in admin volume detail page
ed5adbe Fix wrong link to VM in admin volume detail
8c5f719 Remove app-catalog from plugin list
47ccc06 Updated from global requirements
f3af02f openstack_dashboard: Move test files to match module structure
58faa56 openstack_auth: Move test files to match module structure
493a943 horizon: Move test files to match corresponding module structure
f63183b Imported Translations from Zanata
23a6a82 Add Heat Dasbhoard to Plugin Registry
09e1ab2 Updated from global requirements
93d4542 Trunks panel: display the MAC of ports
ffd0114 Imported Translations from Zanata
eac3e70 Drop Heat related code from horizon
43494b9 Imported Translations from Zanata
4c8a294 API micro-version support for multiple features
8aca02a Render 'Volume Transfer' as modal instead of page
82d5499 Imported Translations from Zanata
3d9b639 Imported Translations from Zanata
9854147 Fix broken nova console support
974f041 Redirect VM console dynamically
2d0c4e9 Update job skip condition
876f80c Commonize load-edit directive
1f41f29 Add MKS console support
0c54f56 Prepare test env for Django 2.0 with python 3.5
db4c47d Fix "Open Console" issue on network topology
62365ba Move legacy horizon-dsvm-tempest-plugin to in-repo jobs
d16f750 Raise detailed exception
b541deb Add release note on policy dirs support
bcf8691 Updated from global requirements
6a6cb7b Imported Translations from Zanata
7caead6 Trunks panel: enable project trunk panel by default
7b207fb Remove initScope from trunk delete.action.service
ec299ff Trunks panel: edit button
1ab4b49 Trunks panel: create button
9b0c511 Use oslo.config for Horizon configuration
d7f29a5 Imported Translations from Zanata
46f8a4d Imported Translations from Zanata
44251a7 Fix admin/project instance UT
b41402e Add user_domain_name to logs regarding authentication
34ac026 Define test logging setting in openstack_auth
846d269 Imported Translations from Zanata
72a4f46 tox: allow to specify module when running pep8 env
39e5ffd Import django_openstack_auth settings missing in horizon doc
5cac0c4 pull_catalog: avoid internet access during module loading
e069823 Imported Translations from Zanata
8aff865 Fixes the deletion on click action assignment
c6a7103 Imported Translations from Zanata
de9f03c Unable to create router when the external network is specified
4693a18 Fix wrong link to VM in admin volume table
39dd7c9 release note for blueprint merge-openstack-auth
0b79538 Reduce code duplication
07e2e0a Make list_targets_by_instance look up IPv4 address as target
cd9a14d Drop unused floating_ip_target_get_by_instance
d14fbc8 FIP associate: Show only ports from a target server
7961c6a Refactor FIP code to use FloatingIpTarget properly
6a6bb07 Imported Translations from Zanata
ff08536 Add django.wsgi to target of pep8
a92d165 Fix the network subnets check in create instance form
c2405bb Remove setting of version/release from releasenotes
1b0bd0d Move openstack_auth API refernece into a separate place
68a62bd Updated from global requirements
25375c3 Imported Translations from Zanata
235c60c Remove testr support
f7eec15 Use ThemableChoiceField
edbf88f Use specified phrases in lieu of 'Used' for limit summary
48c6599 Imported Translations from Zanata
63d7146 Don't add required attribute to html form fields
59b18f3 Disable metadata switch if only one item is available
3ee03ac Drop Makefile
a15e2e3 Updated from global requirements
7e5ddf2 Updated from global requirements
e2e8a2c Imported Translations from Zanata
ee3e612 Move django variants UT and selenium-headless to in-repo jobs
ed7e51a Show a better error message for network delete failure
83add59 Imported Translations from Zanata
104d2b5 Imported Translations from Zanata
cb37926 Imported Translations from Zanata
340d4ff Doc: Delete pyc in a structure of dashboard.rst file
415a4f8 Imported Translations from Zanata
c1a45f5 Imported Translations from Zanata
e98eb20 Support include_names argument for keystone role assignement list
8099132 Cleaned up formats for qos panel
25a6f31 Imported Translations from Zanata
e7f2217 Add delete action for key pair
9a75863 Remove deprecated scope handling
d1267da Prevent "enter" from triggering submit action on modal forms
f911d0d Imported Translations from Zanata
0684501 Imported Translations from Zanata
af9505f Remove unused API function from Nova API
d545165 Imported Translations from Zanata
d465107 Imported Translations from Zanata
2161b91 [Micro version] Support description for instance
58b14a8 transfer-table: Rethink CHANGED message handler
e722055 doc: Update the URL of noVNC
784a865 Imported Translations from Zanata
b5896d6 Implement setting availability zone hint on network creation
5d561c9 Imported Translations from Zanata
edcd222 Add a checkbox to disable SNAT on routers
1a6b16b Switch Cinder-related tests to mock
14a350d Switch Cinder-related tests to mock
e94992f  Switch Cinder-related tests to mock
33dc940 Correct quota usage check for instances
2949a98 Implement network availability zone column in network list
a6ae818 Wrap various API calls with try/except in Router panel
b9972f7 Fetch Cinder availability zones list for volume creation
0ee5cfc Imported Translations from Zanata
887d7fb Add network availability zone information for network agents
1e012e7 Support fixed ip address when attaching interface
e9db123 Support security groups association per port
9d5be52 Hide IPv6-addresses when assigning floating IP addresses
b9664a1 Routers can be created with availability zone
4db34f6 Added type checks for ha device owners
5902176 Router lists display availability zone information
827ed2d Revert "Remove the quota check for "Launch Instance" button"
0a51d07 Remove unused function calls in project instances attach volume form
9808567 Correct the log info when get networks failed in project router form
502cffb Fix logo in IE11/Edge browsers
e742950 Remove the errored steps after they all responded
80a84aa Imported Translations from Zanata
f9705f0 Remove hardcoded check for subnet actions of a shared network
1afba5f Sort security group rules more meaningfully
c87f732 Imported Translations from Zanata
16afe25 Set Angular roles panel as the default
c13d6da Add render method to ThemableCheckboxSelectMultiple
7e4dd61 Rename "Import Key Pair" to "Import Public Key"
924fb68 Add REST APIs for Keystone Group
872ea43 Adding identity ng-groups panel
aec3a33 Fix displaying pool name for floating ip
6d12291 Remove license headers to openstack_dashboard/enabled/* files
81e7170 Imported Translations from Zanata
5de6b3e Show subnet detail with prefix_delegation subnetpool properly
7b82f7b Fix gettext warning "Empty msgid"
3e6e315 Fix typo
9c303e3 Imported Translations from Zanata
fa2e832 Add cache for get_microversion() against Nova
65baa5f Do not fail on AdminUpdateRow if tenant is not found
2e7dce8 Adds extensible header functionality
4083d08 Remove the quota check for "Launch Instance" button
b5bd758 Correct the subnets quota check in admin networks panel
194c881 Angularize Key Pair Details
6107983 Fix non-API bound filters in project and admin instance panels
e3e5812 Add Django OpenStack Auth to Horizon
fc3f319 Imported Translations from Zanata
a2bf885 Imported Translations from Zanata
a4aed76 Include add subnet action on admin networks panel
2e4ce76 Revert "No need to discover panel in Site class"
91cf6fc Imported Translations from Zanata
ee989fc Fix Http302 error message in UT
0c8b0f3 Fixes toggle behavior in Network Topology graphs
af3b7e4 flake8-import-order: Ensure to place project imports last
61ad9f6 Fix a bug to unable to retrieve ports when no trunk ext
1eb9596 Set default panel of identity with pluggable settings mechanism
dcf5e1e Use WrappingColumn for image name
a6aa51c Remove unused code (_logout method and auth_views in base.py)
fb39de1 No need to discover panel in Site class
a3a7812 Imported Translations from Zanata
9576464 Updated from global requirements
de37fc1 NaNJSONEncoder should be used in api "cinder/tenantabsolutelimits"
b26b17c Fix icon of status on network topology
d6f1d11 Add server-side filtering Floating IPs
fbcddd7 Cleaned up date formats for images panel
6a38e83 Clarify the comment for WEBSSO_INITIAL_CHOICE
2139536 Updated from global requirements
c1d91d2 Fix wrong links  in horizon
818d65d Updated from global requirements
2d2a562 Set PROJECT_DOMAIN_NAME in generated v3 openrc
962b934 Add more entries to LOGGING configuration
55162ef Add reason into warning for error on loading panel
9e1eb5f Fix actions inside instance details view page
f22fe2d Display attachment's server_id when name is no longer available
4d32b1f Add permissions explanation to quickstart doc
d44f1c7 [doc] Fix broken links
f578792 Imported Translations from Zanata
9c3d01a Fix warning message not showing on launch instance modal
a4d05ce Clean up broken links due to doc-migration
d8071c0 Updated from global requirements
1a7e8cf Imported Translations from Zanata
748d986 TrunkPort, Horizon workflow: launch instance
7c9758d Fix link to serial console stylesheet
ff90f4d Imported Translations from Zanata
bfd6630 Properly sort Heat stacks on Created field
8f4e02c Show NotAuthorized error message on a separate page
0b65dbc Disable 'Create Port' button if ports quota is exceeded
f3e9ef5 extract_messages, update_catalog: Simplify help message
b4914c4 Remove remainder of run_tests references
c3a2855 Imported Translations from Zanata
233680f Delete unnecessary judgment when getting the neutron quota
616369c Updated from global requirements
b33431e Imported Translations from Zanata
4982dc3 Angularize Key Pairs index view
4c5231c Restores sorting in the launch dialog source page
ca6ef9e Fix UnhashableKeyWarning when calling get_security_groups function
c5b33ec Updated from global requirements
01f91bf Imported Translations from Zanata
f61d413 Do not call servers_update_addresses if no instances loaded
893601f Imported Translations from Zanata
fb4ae6b Fix subnets can not be deleted from network topology panel
8d7b2ce Make nosehtmloutput an optional test requirement
48862eb do not flush selection on "old" boot source
c6c24ed Make icmp_type/code optional
15d996f Allow admin to create port on networks of different projects
03e2299 Imported Translations from Zanata
678bb64 Fix bug for the switchable fields
c03ba4e Updated from global requirements
b5ecce9 Imported Translations from Zanata
4dbbca3 Updated from global requirements
953cd78 Incorrect URL for polling heat stack
674830c Update neutron policy file
9554177 Ensure all filter items end with '='
8db04ad Imported Translations from Zanata
4cddc75 Remove FWaaS specific policies from neutron_policy
9787ef4 Minor improvements to the translation document
4d64d61 Make cinder generic group quotas translatable
004dc28 Imported Translations from Zanata
846fc19 Fix pofile for pseudo translations
6529cd1 Remove run_tests.sh
27a828b Imported Translations from Zanata
08fd18c Add exceptions for action
bc14b0d Imported Translations from Zanata
00f74fc Revert "Generate language list automatically"
19a4012 extract_messages: Specify input directory
4d1a19f Imported Translations from Zanata
538417b Remove admin requirement for shared network actions
d20c941 Make get_available_images() return all the images available
2040d09 releasenote: Move ignore-notes to pike
0723e60 Fix Python 3 issues with serialization json from request
00de2e9 Imported Translations from Zanata
2c69f10 Update reno for stable/pike
a9517ff Fix cannot delete user's email addresses in the identity/user panel
5aab8bf Refactor the current UpdatePort form to workflow version
a58aa26 Refresh role table after editing role
7f6e03a Fix style of the submit button on confirmation modal
476b0a4 Display correct volume size in error message
09a2afe Fix the error format of glance's createImage
221d1a2 Show updated data on Flavor Access tab
3a99499 Get all needed instances for volumes attachments at Admin->Volumes
f20dacf Fix subnet no show in networktopology graph
2415d5e Added error msg when gets redirect to login page
a72a1ec Make @memoize thread-aware
f713bfb Add missing include template in admin migrate host form
d343ca3 template for content under the login form


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

.gitignore                                         |    2 -
.gitreview                                         |    1 +
.testr.conf                                        |    4 -
.zuul.yaml                                         |   88 +
MANIFEST.in                                        |    3 -
Makefile                                           |   23 -
.../contributor/ref/openstack_auth/backend.rst     |    6 +
.../contributor/ref/openstack_auth/forms.rst       |    6 +
.../contributor/ref/openstack_auth/utils.rst       |    6 +
.../contributor/ref/openstack_auth/views.rst       |    6 +
...configure-access-and-security-for-instances.rst |   16 +-
horizon/base.py                                    |   15 +-
horizon/browsers/views.py                          |   21 +
horizon/decorators.py                              |   23 +
horizon/exceptions.py                              |   17 +-
horizon/forms/fields.py                            |   57 +-
horizon/locale/cs/LC_MESSAGES/django.po            |   36 +-
horizon/locale/cs/LC_MESSAGES/djangojs.po          |   21 +-
horizon/locale/de/LC_MESSAGES/django.po            |   53 +-
horizon/locale/de/LC_MESSAGES/djangojs.po          |   46 +-
horizon/locale/en_AU/LC_MESSAGES/django.po         |   51 +-
horizon/locale/en_AU/LC_MESSAGES/djangojs.po       |   31 +-
horizon/locale/en_GB/LC_MESSAGES/django.po         |   53 +-
horizon/locale/en_GB/LC_MESSAGES/djangojs.po       |   43 +-
horizon/locale/eo/LC_MESSAGES/django.po            |  423 +
horizon/locale/eo/LC_MESSAGES/djangojs.po          |  495 ++
horizon/locale/es/LC_MESSAGES/django.po            |  117 +-
horizon/locale/es/LC_MESSAGES/djangojs.po          |  134 +-
horizon/locale/es_MX/LC_MESSAGES/django.po         |   10 +-
horizon/locale/fi_FI/LC_MESSAGES/django.po         |   10 +-
horizon/locale/fr/LC_MESSAGES/django.po            |   93 +-
horizon/locale/fr/LC_MESSAGES/djangojs.po          |   61 +-
horizon/locale/hi/LC_MESSAGES/django.po            |   10 +-
horizon/locale/id/LC_MESSAGES/django.po            |   46 +-
horizon/locale/id/LC_MESSAGES/djangojs.po          |   43 +-
horizon/locale/it/LC_MESSAGES/django.po            |   10 +-
horizon/locale/it/LC_MESSAGES/djangojs.po          |   27 +-
horizon/locale/ja/LC_MESSAGES/django.po            |   51 +-
horizon/locale/ja/LC_MESSAGES/djangojs.po          |   44 +-
horizon/locale/ko_KR/LC_MESSAGES/django.po         |   49 +-
horizon/locale/ko_KR/LC_MESSAGES/djangojs.po       |   53 +-
horizon/locale/pa_IN/LC_MESSAGES/django.po         |   10 +-
horizon/locale/pl_PL/LC_MESSAGES/django.po         |   36 +-
horizon/locale/pt/LC_MESSAGES/django.po            |   10 +-
horizon/locale/pt_BR/LC_MESSAGES/django.po         |   52 +-
horizon/locale/pt_BR/LC_MESSAGES/djangojs.po       |   44 +-
horizon/locale/ru/LC_MESSAGES/django.po            |   41 +-
horizon/locale/ru/LC_MESSAGES/djangojs.po          |   21 +-
horizon/locale/tr_TR/LC_MESSAGES/django.po         |   55 +-
horizon/locale/tr_TR/LC_MESSAGES/djangojs.po       |   42 +-
horizon/locale/zh_CN/LC_MESSAGES/django.po         |   54 +-
horizon/locale/zh_CN/LC_MESSAGES/djangojs.po       |   52 +-
horizon/locale/zh_TW/LC_MESSAGES/django.po         |   32 +-
horizon/locale/zh_TW/LC_MESSAGES/djangojs.po       |   42 +-
horizon/management/commands/pull_catalog.py        |   17 +-
horizon/middleware/base.py                         |   18 +-
horizon/middleware/operation_log.py                |    4 +-
.../conf/resource-type-registry.service.js         |   12 +-
.../conf/resource-type-registry.service.spec.js    |   18 +-
horizon/static/framework/framework.module.js       |   56 +-
horizon/static/framework/framework.module.spec.js  |   48 +-
.../framework/util/file/text-download.service.js   |   66 +
.../util/file/text-download.service.spec.js        |   34 +
horizon/static/framework/util/filters/filters.js   |   14 +
.../static/framework/util/filters/filters.spec.js  |   15 +
.../util/validators/hz-password-match.directive.js |   31 +-
.../validators/hz-password-match.directive.spec.js |    2 +-
.../action-list/actions-batch.template.html        |    1 +
.../widgets/action-list/actions-row.template.html  |    1 +
.../widgets/action-list/actions.directive.js       |    2 +-
.../widgets/action-list/actions.service.js         |    1 +
.../details/routed-details-view.controller.js      |    8 +-
horizon/static/framework/widgets/form/decorator.js |    4 +
.../framework/widgets/form/decorator.spec.js       |    2 +-
.../widgets/form/fields/password-confirm.html      |   57 +
.../widgets/form/modal-form.controller.js          |    8 +-
.../widgets/form/modal-form.controller.spec.js     |   17 +-
.../static/framework/widgets/form/modal-form.html  |    5 +-
.../widgets/load-edit/load-edit.directive.js       |   53 +-
.../widgets/load-edit/load-edit.directive.spec.js  |   15 +-
.../framework/widgets/load-edit/load-edit.html     |   38 +-
.../widgets/metadata/display/display.scss          |    5 +-
.../display/metadata-display.controller.js         |    7 +
.../widgets/metadata/display/metadata-display.html |    2 +-
.../framework/widgets/modal/simple-modal.html      |    4 +-
.../widgets/modal/simple-modal.service.js          |    3 +-
.../widgets/modal/wizard-modal.service.js          |    9 -
.../widgets/modal/wizard-modal.service.spec.js     |   10 +-
.../framework/widgets/toast/toast.service.js       |   15 +
.../static/framework/widgets/toast/toast.spec.js   |   12 +
.../transfer-table/transfer-table.controller.js    |   32 +-
.../transfer-table.controller.spec.js              |   34 +-
.../transfer-table/transfer-table.module.js        |    2 +-
.../framework/widgets/wizard/wizard.controller.js  |   52 +-
.../widgets/wizard/wizard.controller.spec.js       |   96 +
.../static/framework/widgets/wizard/wizard.spec.js |   38 +
.../static/horizon/js/horizon.extensible_header.js |   65 +
horizon/static/horizon/js/horizon.forms.js         |    9 +
horizon/static/horizon/js/horizon.hacks.js         |   24 +
horizon/static/horizon/js/horizon.heattop.js       |    3 +-
horizon/static/horizon/js/horizon.modals.js        |    8 +-
horizon/static/horizon/js/horizon.tables.js        |    7 +-
horizon/tables/actions.py                          |  101 +-
horizon/tables/base.py                             |   17 +-
horizon/templates/auth/_login_form.html            |    5 +
horizon/templates/auth/_login_modal.html           |    7 +-
horizon/templates/auth/_login_page.html            |    7 +-
horizon/templates/horizon/client_side/_modal.html  |    2 +-
.../horizon/common/_data_table_pagination.html     |    2 +-
.../templates/horizon/common/_limit_summary.html   |   16 +-
horizon/templates/not_authorized.html              |   10 +
horizon/test/settings.py                           |    7 +-
horizon/test/templates/angular.html                |    0
horizon/test/test_hacking.py                       |  112 -
horizon/test/unit/__init__.py                      |    0
horizon/test/unit/forms/__init__.py                |    0
horizon/test/unit/forms/test_fields.py             |  332 +
horizon/test/unit/forms/test_forms.py              |  106 +
horizon/test/unit/hacking/__init__.py              |    0
horizon/test/unit/hacking/test_checks.py           |  112 +
horizon/test/unit/management/__init__.py           |    0
horizon/test/unit/management/commands/__init__.py  |    0
.../unit/management/commands/test_startdash.py     |   37 +
.../unit/management/commands/test_startpanel.py    |   36 +
horizon/test/unit/middleware/__init__.py           |    0
horizon/test/unit/middleware/test_base.py          |   80 +
horizon/test/unit/middleware/test_operation_log.py |  175 +
horizon/test/unit/tables/__init__.py               |    0
horizon/test/unit/tables/test_tables.py            | 1689 ++++
horizon/test/unit/tabs/__init__.py                 |    0
horizon/test/unit/tabs/test_tabs.py                |  344 +
horizon/test/unit/templatetags/__init__.py         |    0
.../test/unit/templatetags/test_templatetags.py    |  152 +
horizon/test/unit/test_base.py                     |  539 ++
horizon/test/unit/test_exceptions.py               |   62 +
horizon/test/unit/test_messages.py                 |   53 +
horizon/test/unit/test_notifications.py            |   59 +
horizon/test/unit/test_views.py                    |  101 +
horizon/test/unit/utils/__init__.py                |    0
.../test/unit/utils/test_babel_extract_angular.py  |  187 +
horizon/test/unit/utils/test_file_discovery.py     |  252 +
horizon/test/unit/utils/test_filters.py            |  100 +
horizon/test/unit/utils/test_functions.py          |   97 +
horizon/test/unit/utils/test_memoized.py           |   83 +
horizon/test/unit/utils/test_secret_key.py         |   39 +
horizon/test/unit/utils/test_units.py              |   74 +
horizon/test/unit/utils/test_validators.py         |   99 +
horizon/test/unit/workflows/__init__.py            |    0
horizon/test/unit/workflows/test_workflows.py      |  362 +
horizon/utils/memoized.py                          |   35 +-
horizon/views.py                                   |    3 +-
openstack_auth/__init__.py                         |    0
openstack_auth/backend.py                          |  283 +
openstack_auth/exceptions.py                       |   17 +
openstack_auth/forms.py                            |  151 +
openstack_auth/locale/de/LC_MESSAGES/django.po     |   93 +
openstack_auth/locale/en_GB/LC_MESSAGES/django.po  |   91 +
openstack_auth/locale/eo/LC_MESSAGES/django.po     |   90 +
openstack_auth/locale/es/LC_MESSAGES/django.po     |   93 +
openstack_auth/locale/fr/LC_MESSAGES/django.po     |   92 +
openstack_auth/locale/id/LC_MESSAGES/django.po     |   94 +
openstack_auth/locale/ja/LC_MESSAGES/django.po     |   91 +
openstack_auth/locale/ko_KR/LC_MESSAGES/django.po  |   89 +
openstack_auth/locale/pt_BR/LC_MESSAGES/django.po  |   94 +
openstack_auth/locale/zh_CN/LC_MESSAGES/django.po  |   89 +
openstack_auth/models.py                           |   18 +
openstack_auth/plugin/__init__.py                  |   22 +
openstack_auth/plugin/base.py                      |  241 +
openstack_auth/plugin/k2k.py                       |  107 +
openstack_auth/plugin/password.py                  |   51 +
openstack_auth/plugin/token.py                     |   41 +
openstack_auth/policy.py                           |  232 +
openstack_auth/urls.py                             |   36 +
openstack_auth/user.py                             |  454 ++
openstack_auth/utils.py                            |  562 ++
openstack_auth/views.py                            |  329 +
openstack_dashboard/api/__init__.py                |    2 -
openstack_dashboard/api/base.py                    |    5 +-
openstack_dashboard/api/cinder.py                  |   21 +-
openstack_dashboard/api/heat.py                    |  265 -
openstack_dashboard/api/keystone.py                |   13 +-
openstack_dashboard/api/microversions.py           |   31 +-
openstack_dashboard/api/neutron.py                 |  361 +-
openstack_dashboard/api/nova.py                    |  122 +-
openstack_dashboard/api/rest/__init__.py           |    2 -
openstack_dashboard/api/rest/cinder.py             |   25 +-
openstack_dashboard/api/rest/glance.py             |    4 +-
openstack_dashboard/api/rest/heat.py               |   51 -
openstack_dashboard/api/rest/keystone.py           |   94 +-
openstack_dashboard/api/rest/neutron.py            |   24 +-
openstack_dashboard/api/rest/nova.py               |   34 +-
openstack_dashboard/api/rest/utils.py              |    7 +-
.../conf/cinder_policy.d/consistencygroup.yaml     |   10 +
openstack_dashboard/conf/cinder_policy.json        |  211 +-
openstack_dashboard/conf/glance_policy.json        |   10 +-
openstack_dashboard/conf/heat_policy.json          |   92 -
openstack_dashboard/conf/keystone_policy.json      |  271 +-
openstack_dashboard/conf/neutron_policy.json       |   40 +-
.../conf/nova_policy.d/api-extensions.yaml         |    3 +
openstack_dashboard/conf/nova_policy.json          |  133 +-
openstack_dashboard/context_processors.py          |    9 +
.../contrib/developer/form_builder/urls.py         |    1 +
.../contrib/developer/resource_browser/urls.py     |    1 +
.../resource-browser-item.controller.js            |   12 +-
.../developer/theme-preview/theme-preview.html     |   12 +-
.../dashboards/admin/aggregates/workflows.py       |   18 +-
openstack_dashboard/dashboards/admin/dashboard.py  |    7 +-
.../dashboards/admin/defaults/tables.py            |   25 +-
.../dashboards/admin/defaults/workflows.py         |    8 +-
.../dashboards/admin/flavors/tables.py             |    3 +
.../dashboards/admin/flavors/urls.py               |    1 +
.../dashboards/admin/flavors/workflows.py          |    7 +-
.../dashboards/admin/floating_ips/forms.py         |    9 +-
.../dashboards/admin/floating_ips/tables.py        |   24 +-
.../dashboards/admin/floating_ips/views.py         |    7 +-
.../hypervisors/compute/migrate_host.html          |    4 +-
.../dashboards/admin/images/urls.py                |    1 +
.../dashboards/admin/images/views.py               |    4 +-
openstack_dashboard/dashboards/admin/info/panel.py |    3 +-
.../dashboards/admin/info/tables.py                |   64 +-
openstack_dashboard/dashboards/admin/info/tabs.py  |   30 +-
.../dashboards/admin/instances/forms.py            |    6 +-
.../dashboards/admin/instances/tables.py           |   25 +-
.../dashboards/admin/instances/urls.py             |    1 +
.../dashboards/admin/instances/views.py            |   68 +-
.../dashboards/admin/networks/agents/tables.py     |   11 +-
.../dashboards/admin/networks/forms.py             |   22 +
.../dashboards/admin/networks/ports/forms.py       |  117 -
.../dashboards/admin/networks/ports/tables.py      |   33 +
.../dashboards/admin/networks/ports/views.py       |   13 +-
.../dashboards/admin/networks/ports/workflows.py   |   70 +
.../dashboards/admin/networks/subnets/tables.py    |   56 +-
.../dashboards/admin/networks/tables.py            |   75 +-
.../templates/networks/ports/_edit_port_help.html  |   18 +
.../networks/templates/networks/ports/_update.html |    7 -
.../networks/templates/networks/ports/update.html  |    7 -
.../dashboards/admin/networks/workflows.py         |    2 +-
.../dashboards/admin/routers/tables.py             |    2 +-
.../dashboards/admin/snapshots/panel.py            |    3 +-
.../dashboards/admin/snapshots/tables.py           |    5 +
.../dashboards/admin/trunks/__init__.py            |    0
.../dashboards/admin/trunks/panel.py               |   45 +
.../dashboards/admin/trunks/urls.py                |   26 +
.../dashboards/admin/volume_types/panel.py         |    3 +-
.../dashboards/admin/volume_types/tables.py        |    6 +-
.../templates/volume_types/qos_specs/_create.html  |   27 +-
.../dashboards/admin/volumes/panel.py              |    3 +-
.../dashboards/admin/volumes/tables.py             |    6 +
.../dashboards/admin/volumes/tabs.py               |   35 +
.../dashboards/admin/volumes/views.py              |    9 +
.../dashboards/identity/dashboard.py               |    1 -
.../dashboards/identity/domains/tables.py          |    1 -
.../dashboards/identity/groups/tables.py           |    1 -
.../dashboards/identity/groups/urls.py             |   30 +-
.../dashboards/identity/projects/views.py          |   24 -
.../dashboards/identity/projects/workflows.py      |    6 -
.../dashboards/identity/roles/urls.py              |    1 +
.../dashboard/identity/groups/groups.module.js     |  123 +
.../identity/groups/groups.module.spec.js          |   59 +
.../static/dashboard/identity/groups/panel.html    |    4 +
.../static/dashboard/identity/identity.module.js   |    3 +-
.../static/dashboard/identity/roles/panel.html     |    3 +-
.../dashboard/identity/roles/roles.module.js       |   15 +-
.../dashboard/identity/roles/roles.module.spec.js  |   47 +-
.../identity/users/actions/actions.module.js       |  129 +
.../users/actions/create.action.service.js         |   86 +
.../users/actions/create.action.service.spec.js    |   91 +
.../users/actions/delete.action.service.js         |  121 +
.../users/actions/delete.action.service.spec.js    |  142 +
.../users/actions/disable.action.service.js        |   76 +
.../users/actions/disable.action.service.spec.js   |   58 +
.../users/actions/enable.action.service.js         |   76 +
.../users/actions/enable.action.service.spec.js    |   58 +
.../users/actions/password.action.service.js       |  109 +
.../users/actions/password.action.service.spec.js  |  130 +
.../users/actions/update.action.service.js         |   96 +
.../users/actions/update.action.service.spec.js    |   88 +
.../workflow/error.admin-password-incorrect.html   |    1 +
.../users/actions/workflow/error.default.html      |    1 +
.../users/actions/workflow/info.create.help.html   |    1 +
.../users/actions/workflow/info.password.help.html |    1 +
.../users/actions/workflow/info.update.help.html   |    1 +
.../users/actions/workflow/workflow.service.js     |  211 +
.../users/actions/workflow/workflow.spec.js        |   71 +
.../static/dashboard/identity/users/panel.html     |    3 +-
.../dashboard/identity/users/users.module.js       |   17 +-
.../dashboard/identity/users/users.module.spec.js  |    2 +-
.../dashboard/identity/users/users.service.js      |   12 +-
.../dashboard/identity/users/users.service.spec.js |   12 +-
.../dashboards/identity/users/forms.py             |    9 +-
.../dashboards/identity/users/tables.py            |    4 +-
.../dashboards/project/api_access/panel.py         |    1 +
.../dashboards/project/api_access/tables.py        |    5 +-
.../templates/api_access/openrc.sh.template        |    2 +
.../dashboards/project/api_access/urls.py          |    1 +
.../dashboards/project/api_access/views.py         |   10 +-
.../dashboards/project/backups/panel.py            |    3 +-
.../dashboards/project/cg_snapshots/panel.py       |    3 +-
.../dashboards/project/cg_snapshots/tables.py      |    3 +-
.../dashboards/project/cgroups/panel.py            |    3 +-
.../dashboards/project/floating_ips/forms.py       |   16 +-
.../dashboards/project/floating_ips/panel.py       |    1 +
.../dashboards/project/floating_ips/tables.py      |   22 +-
.../templates/floating_ips/_allocate.html          |   10 +-
.../dashboards/project/floating_ips/views.py       |    9 +-
.../dashboards/project/floating_ips/workflows.py   |   42 +-
.../dashboards/project/images/images/urls.py       |    1 +
.../dashboards/project/images/urls.py              |    1 +
.../dashboards/project/images/utils.py             |   23 +-
.../dashboards/project/instances/console.py        |    6 +-
.../dashboards/project/instances/forms.py          |   67 +-
.../dashboards/project/instances/tables.py         |   33 +-
.../templates/instances/_detail_overview.html      |    2 +
.../dashboards/project/instances/urls.py           |    1 +
.../dashboards/project/instances/utils.py          |   44 +-
.../dashboards/project/instances/views.py          |  120 +-
.../project/instances/workflows/create_instance.py |    7 +
.../project/instances/workflows/update_instance.py |   76 +-
.../dashboards/project/key_pairs/tables.py         |    8 +-
.../dashboards/project/key_pairs/urls.py           |   28 +-
.../templates/network_topology/_graph_view.html    |   14 +-
.../dashboards/project/network_topology/utils.py   |    4 +-
.../dashboards/project/network_topology/views.py   |   20 +-
.../extensions/allowed_address_pairs/tables.py     |   14 +-
.../dashboards/project/networks/ports/forms.py     |  182 +-
.../dashboards/project/networks/ports/tables.py    |   35 +-
.../dashboards/project/networks/ports/views.py     |   45 +-
.../dashboards/project/networks/ports/workflows.py |  180 +
.../dashboards/project/networks/subnets/tables.py  |   71 +-
.../dashboards/project/networks/subnets/views.py   |    3 +
.../dashboards/project/networks/tables.py          |   97 +-
.../networks/templates/networks/ports/_create.html |    2 +-
.../templates/networks/ports/_edit_port_help.html  |   25 +
.../networks/templates/networks/ports/_update.html |    7 -
.../networks/templates/networks/ports/update.html  |    7 -
.../dashboards/project/networks/views.py           |    4 +
.../dashboards/project/networks/workflows.py       |   24 +-
.../dashboards/project/overview/views.py           |    2 +-
.../routers/extensions/extraroutes/forms.py        |    3 +-
.../dashboards/project/routers/forms.py            |   38 +-
.../dashboards/project/routers/ports/forms.py      |   23 +-
.../dashboards/project/routers/ports/tables.py     |   10 +-
.../dashboards/project/routers/tables.py           |  104 +-
.../project/routers/templates/routers/_create.html |    3 +
.../dashboards/project/routers/views.py            |   11 +
.../dashboards/project/security_groups/forms.py    |    2 +
.../dashboards/project/security_groups/panel.py    |    1 +
.../dashboards/project/security_groups/tables.py   |    6 +-
.../dashboards/project/security_groups/urls.py     |    1 +
.../dashboards/project/security_groups/views.py    |   19 +-
.../dashboards/project/snapshots/panel.py          |    3 +-
.../dashboards/project/snapshots/tables.py         |    3 +-
.../dashboards/project/snapshots/views.py          |   20 +-
.../dashboards/project/stacks/__init__.py          |    0
.../dashboards/project/stacks/api.py               |   83 -
.../dashboards/project/stacks/forms.py             |  488 --
.../dashboards/project/stacks/mappings.py          |  350 -
.../dashboards/project/stacks/panel.py             |   21 -
.../project/stacks/resource_types/__init__.py      |    0
.../project/stacks/resource_types/panel.py         |   23 -
.../project/stacks/resource_types/tables.py        |   36 -
.../project/stacks/resource_types/tabs.py          |   32 -
.../templates/stacks.resource_types/_details.html  |   15 -
.../project/stacks/resource_types/urls.py          |   22 -
.../project/stacks/resource_types/views.py         |   78 -
.../dashboards/project/stacks/sro.py               |   44 -
.../dashboards/project/stacks/tables.py            |  400 -
.../dashboards/project/stacks/tabs.py              |  173 -
.../project/stacks/template_versions/__init__.py   |    0
.../project/stacks/template_versions/panel.py      |   23 -
.../project/stacks/template_versions/tables.py     |   52 -
.../project/stacks/template_versions/tabs.py       |   51 -
.../stacks.template_versions/_details.html         |    3 -
.../templates/stacks.template_versions/index.html  |    7 -
.../project/stacks/template_versions/urls.py       |   24 -
.../project/stacks/template_versions/views.py      |   61 -
.../stacks/templates/stacks/_change_template.html  |    7 -
.../project/stacks/templates/stacks/_create.html   |    6 -
.../stacks/templates/stacks/_detail_events.html    |    3 -
.../stacks/templates/stacks/_detail_overview.html  |   55 -
.../stacks/templates/stacks/_detail_resources.html |    3 -
.../stacks/templates/stacks/_detail_topology.html  |    9 -
.../project/stacks/templates/stacks/_preview.html  |    6 -
.../stacks/templates/stacks/_preview_details.html  |   58 -
.../stacks/templates/stacks/_preview_template.html |    7 -
.../stacks/templates/stacks/_resource_info.html    |   10 -
.../templates/stacks/_resource_overview.html       |   38 -
.../stacks/templates/stacks/_select_template.html  |    7 -
.../stacks/templates/stacks/_stack_info.html       |   14 -
.../stacks/templates/stacks/_stack_template.html   |    5 -
.../project/stacks/templates/stacks/_update.html   |    6 -
.../stacks/templates/stacks/change_template.html   |    7 -
.../project/stacks/templates/stacks/create.html    |    7 -
.../project/stacks/templates/stacks/preview.html   |    7 -
.../stacks/templates/stacks/preview_details.html   |    7 -
.../stacks/templates/stacks/preview_template.html  |    7 -
.../stacks/templates/stacks/select_template.html   |    7 -
.../project/stacks/templates/stacks/update.html    |    7 -
.../dashboards/project/stacks/urls.py              |   38 -
.../dashboards/project/stacks/views.py             |  358 -
.../project/containers/containers.controller.js    |    5 +-
.../project/containers/delete-objects-modal.html   |    2 +-
.../configuration/configuration.controller.js      |    2 +-
.../configuration/configuration.html               |   12 +-
.../launch-instance/details/details.controller.js  |   12 +-
.../details/details.controller.spec.js             |   25 +-
.../workflow/launch-instance/details/details.html  |    6 +
.../workflow/launch-instance/flavor/flavor.html    |   24 +-
.../launch-instance/keypair/create-keypair.html    |    4 +-
.../launch-instance-model.service.js               |   11 +-
.../launch-instance-model.service.spec.js          |   28 +-
.../launch-instance-workflow.service.js            |    9 +-
.../launch-instance-workflow.service.spec.js       |   13 +
.../launch-instance/launch-instance.module.js      |    5 +
.../launch-instance/networkports/ports.html        |   12 +-
.../launch-instance/source/source.controller.js    |   65 +-
.../source/source.controller.spec.js               |   14 +
.../workflow/launch-instance/source/source.html    |   43 +-
.../dashboards/project/volumes/forms.py            |   21 +-
.../dashboards/project/volumes/panel.py            |    3 +-
.../dashboards/project/volumes/tables.py           |   14 +-
.../dashboards/project/volumes/tabs.py             |   31 +-
.../templates/volumes/_detail_overview.html        |    6 +-
.../volumes/templates/volumes/_show_transfer.html  |   10 +-
.../templates/volumes/download_transfer_creds.html |    3 +
.../dashboards/project/volumes/views.py            |   46 +-
.../dashboards/settings/password/panel.py          |    1 -
.../dashboards/settings/user/forms.py              |   71 +-
openstack_dashboard/enabled/_1000_project.py       |   14 -
.../enabled/_1020_project_overview_panel.py        |   12 -
.../enabled/_1050_project_images_panel.py          |   14 -
.../enabled/_1500_project_trunks_panel.py          |   17 -
.../enabled/_1510_project_network_qos_panel.py     |   12 -
.../enabled/_1610_orchestration_panel_group.py     |    8 -
.../enabled/_1620_project_stacks_panel.py          |    9 -
.../enabled/_1630_project_resource_types_panel.py  |   10 -
.../_1640_project_template_versions_panel.py       |   10 -
.../enabled/_1920_project_containers_panel.py      |   14 -
openstack_dashboard/enabled/_2000_admin.py         |   14 -
.../enabled/_2010_admin_overview_panel.py          |   12 -
.../enabled/_2150__admin_flavors_panel.py          |   24 -
.../enabled/_2150_admin_flavors_panel.py           |    9 +
.../enabled/_2340_admin_trunks_panel.py            |    9 +
openstack_dashboard/enabled/_3000_identity.py      |   12 -
.../enabled/_3020_identity_projects_panel.py       |    2 +
openstack_dashboard/exceptions.py                  |    5 -
.../local/local_settings.py.example                |   90 +-
.../locale/as/LC_MESSAGES/django.po                |  305 +-
.../locale/bn_IN/LC_MESSAGES/django.po             |  303 +-
.../locale/brx/LC_MESSAGES/django.po               |  304 +-
.../locale/cs/LC_MESSAGES/django.po                |  588 +-
.../locale/cs/LC_MESSAGES/djangojs.po              |   98 +-
.../locale/de/LC_MESSAGES/django.po                |  875 +--
.../locale/de/LC_MESSAGES/djangojs.po              |  451 +-
.../locale/en_AU/LC_MESSAGES/django.po             |  986 ++-
.../locale/en_AU/LC_MESSAGES/djangojs.po           |   94 +-
.../locale/en_GB/LC_MESSAGES/django.po             |  853 +-
.../locale/en_GB/LC_MESSAGES/djangojs.po           | 1690 +++-
.../locale/eo/LC_MESSAGES/django.po                | 8209 ++++++++++++++++++++
.../locale/eo/LC_MESSAGES/djangojs.po              | 3694 +++++++++
.../locale/es/LC_MESSAGES/django.po                | 1925 +++--
.../locale/es/LC_MESSAGES/djangojs.po              | 1751 ++++-
.../locale/fr/LC_MESSAGES/django.po                |  861 +-
.../locale/fr/LC_MESSAGES/djangojs.po              |  312 +-
.../locale/gu/LC_MESSAGES/django.po                |  304 +-
.../locale/hi/LC_MESSAGES/django.po                |  297 +-
.../locale/id/LC_MESSAGES/django.po                |  843 +-
.../locale/id/LC_MESSAGES/djangojs.po              |  528 +-
.../locale/it/LC_MESSAGES/django.po                |  555 +-
.../locale/it/LC_MESSAGES/djangojs.po              |   41 +-
.../locale/ja/LC_MESSAGES/django.po                |  851 +-
.../locale/ja/LC_MESSAGES/djangojs.po              |  511 +-
.../locale/kn/LC_MESSAGES/django.po                |  307 +-
.../locale/ko_KR/LC_MESSAGES/django.po             |  865 +--
.../locale/ko_KR/LC_MESSAGES/djangojs.po           |  586 +-
.../locale/kok/LC_MESSAGES/django.po               |  304 +-
.../locale/ks/LC_MESSAGES/django.po                |  304 +-
.../locale/mai/LC_MESSAGES/django.po               |  304 +-
.../locale/mni/LC_MESSAGES/django.po               |  306 +-
.../locale/mr/LC_MESSAGES/django.po                |  303 +-
.../locale/ne/LC_MESSAGES/django.po                |  303 +-
.../locale/nl_NL/LC_MESSAGES/django.po             |  293 +-
.../locale/pa_IN/LC_MESSAGES/django.po             |  305 +-
.../locale/pl_PL/LC_MESSAGES/django.po             |  548 +-
.../locale/pt_BR/LC_MESSAGES/django.po             |  853 +-
.../locale/pt_BR/LC_MESSAGES/djangojs.po           |  541 +-
.../locale/ru/LC_MESSAGES/django.po                |  905 +--
.../locale/ru/LC_MESSAGES/djangojs.po              |   99 +-
.../locale/sr/LC_MESSAGES/django.po                |  269 +-
.../locale/ta/LC_MESSAGES/django.po                |  305 +-
.../locale/tr_TR/LC_MESSAGES/django.po             | 1804 ++---
.../locale/tr_TR/LC_MESSAGES/djangojs.po           |  474 +-
.../locale/ur/LC_MESSAGES/django.po                |  305 +-
.../locale/zh_CN/LC_MESSAGES/django.po             |  971 +--
.../locale/zh_CN/LC_MESSAGES/djangojs.po           |  802 +-
.../locale/zh_TW/LC_MESSAGES/django.po             | 1209 +--
.../locale/zh_TW/LC_MESSAGES/djangojs.po           | 1254 ++-
.../management/commands/extract_messages.py        |   21 +-
.../management/commands/update_catalog.py          |   25 +-
openstack_dashboard/settings.py                    |   65 +-
openstack_dashboard/static/app/core/_core.scss     |    1 +
.../core/images/actions/create.action.service.js   |   40 +-
.../images/actions/create.action.service.spec.js   |  100 +-
.../core/images/actions/delete-image.service.js    |   45 +-
.../images/actions/delete-image.service.spec.js    |   12 -
.../app/core/images/actions/edit.action.service.js |   90 +-
.../images/actions/edit.action.service.spec.js     |   35 +-
.../static/app/core/images/images.module.js        |    8 +-
.../static/app/core/images/images.service.js       |    4 +-
.../steps/create-image/create-image.controller.js  |   11 +-
.../create-image/create-image.controller.spec.js   |   14 +-
.../create-volume/create-volume.controller.js      |   12 +-
.../create-volume/create-volume.controller.spec.js |   32 +-
.../steps/edit-image/edit-image.controller.js      |    6 +-
.../steps/edit-image/edit-image.controller.spec.js |   18 +-
.../update-metadata/update-metadata.controller.js  |    2 +-
.../update-metadata.controller.spec.js             |    8 +-
.../static/app/core/keypairs/_keypairs.scss        |   27 +
.../app/core/keypairs/actions/actions.module.js    |   83 +
.../core/keypairs/actions/create.description.html  |    5 +
.../app/core/keypairs/actions/create.service.js    |  159 +
.../core/keypairs/actions/create.service.spec.js   |   74 +
.../app/core/keypairs/actions/delete.service.js    |  121 +
.../core/keypairs/actions/delete.service.spec.js   |  135 +
.../core/keypairs/actions/import.description.html  |   23 +
.../actions/import.public-key.controller.js        |   43 +
.../actions/import.public-key.controller.spec.js   |   54 +
.../core/keypairs/actions/import.public-key.html   |    9 +
.../app/core/keypairs/actions/import.service.js    |  157 +
.../core/keypairs/actions/import.service.spec.js   |   75 +
.../core/keypairs/details/details.controller.js    |   35 +
.../keypairs/details/details.controller.spec.js    |   42 +
.../static/app/core/keypairs/details/details.html  |   12 +
.../app/core/keypairs/details/details.module.js    |   51 +
.../static/app/core/keypairs/details/drawer.html   |    5 +
.../static/app/core/keypairs/keypairs.module.js    |   85 +-
.../app/core/keypairs/keypairs.module.spec.js      |   22 +
.../static/app/core/keypairs/keypairs.service.js   |   81 +
.../app/core/keypairs/keypairs.service.spec.js     |   72 +
.../static/app/core/keypairs/panel.html            |    5 +
.../static/app/core/network_qos/qos.module.js      |   20 +-
.../static/app/core/network_qos/qos.service.js     |    4 +-
.../core/openstack-service-api/cinder.service.js   |   20 +
.../openstack-service-api/cinder.service.spec.js   |    7 +
.../core/openstack-service-api/glance.service.js   |   11 +-
.../openstack-service-api/glance.service.spec.js   |   29 +-
.../app/core/openstack-service-api/heat.service.js |   80 -
.../openstack-service-api/heat.service.spec.js     |   80 -
.../core/openstack-service-api/keystone.service.js |   52 +-
.../openstack-service-api/keystone.service.spec.js |   66 +
.../core/openstack-service-api/neutron.service.js  |   55 +-
.../openstack-service-api/neutron.service.spec.js  |   96 +
.../app/core/openstack-service-api/nova.service.js |   57 +
.../openstack-service-api/nova.service.spec.js     |   29 +
.../app/core/trunks/actions/actions.module.js      |   37 +-
.../app/core/trunks/actions/actions.module.spec.js |   25 +-
.../core/trunks/actions/create.action.service.js   |  149 +
.../trunks/actions/create.action.service.spec.js   |  186 +
.../core/trunks/actions/create.workflow.service.js |   68 +
.../core/trunks/actions/delete.action.service.js   |  126 +-
.../trunks/actions/delete.action.service.spec.js   |  273 +-
.../app/core/trunks/actions/edit.action.service.js |  156 +
.../trunks/actions/edit.action.service.spec.js     |  196 +
.../core/trunks/actions/edit.workflow.service.js   |   62 +
.../app/core/trunks/actions/ports-extra.service.js |  142 +
.../trunks/actions/ports-extra.service.spec.js     |  112 +
.../app/core/trunks/details/details.module.js      |    0
.../app/core/trunks/details/overview.controller.js |    0
.../static/app/core/trunks/details/overview.html   |    0
.../static/app/core/trunks/panel.html              |    5 +-
.../core/trunks/steps/trunk-details.controller.js  |   93 +
.../trunks/steps/trunk-details.controller.spec.js  |   73 +
.../app/core/trunks/steps/trunk-details.help.html  |   17 +
.../app/core/trunks/steps/trunk-details.html       |   60 +
.../trunks/steps/trunk-parent-port.controller.js   |  137 +
.../steps/trunk-parent-port.controller.spec.js     |  135 +
.../core/trunks/steps/trunk-parent-port.help.html  |   25 +
.../app/core/trunks/steps/trunk-parent-port.html   |  179 +
.../core/trunks/steps/trunk-subports.controller.js |  165 +
.../trunks/steps/trunk-subports.controller.spec.js |  192 +
.../app/core/trunks/steps/trunk-subports.help.html |   65 +
.../app/core/trunks/steps/trunk-subports.html      |  196 +
.../static/app/core/trunks/trunks.module.js        |   31 +-
.../static/app/core/trunks/trunks.module.spec.js   |    2 +-
.../static/app/core/trunks/trunks.service.js       |   59 +-
.../static/app/core/trunks/trunks.service.spec.js  |   41 +-
.../static/app/core/workflow/decorator.service.js  |    8 +-
.../app/core/workflow/decorator.service.spec.js    |   11 +-
.../static/dashboard/img/logo-splash.svg           |    2 +-
openstack_dashboard/static/dashboard/img/logo.svg  |    2 +-
.../dashboard/scss/components/_messages.scss       |    2 +-
.../static/dashboard/scss/components/_modals.scss  |    6 +-
.../static/dashboard/scss/components/_navbar.scss  |    7 +-
.../scss/components/_transfer_tables.scss          |   10 +-
.../static/js/angular/directives/serialConsole.js  |   45 +-
.../static/js/horizon.flatnetworktopology.js       |   12 +-
.../static/js/horizon.networktopology.js           |  136 +-
openstack_dashboard/templates/404.html             |   23 +-
.../templates/_login_form_footer.html              |    6 +
openstack_dashboard/templates/header/_header.html  |    1 +
.../templates/header/_header_sections.html         |   28 +
.../templates/header/_user_menu.html               |   33 +-
.../templates/horizon/_scripts.html                |    2 +
openstack_dashboard/templates/serial_console.html  |    5 +-
openstack_dashboard/test/extensible_header_urls.py |   18 +
openstack_dashboard/test/helpers.py                |  107 +-
.../pages/admin/system/flavorspage.py              |    4 +-
.../pages/project/orchestration/__init__.py        |    0
.../pages/project/orchestration/stackspage.py      |   99 -
openstack_dashboard/test/selenium/__init__.py      |    0
openstack_dashboard/test/settings.py               |   18 +-
openstack_dashboard/test/test_data/cinder_data.py  |   15 +-
openstack_dashboard/test/test_data/exceptions.py   |    4 -
openstack_dashboard/test/test_data/heat_data.py    |  617 --
.../test/test_data/keystone_data.py                |   32 +-
openstack_dashboard/test/test_data/neutron_data.py |  243 +-
openstack_dashboard/test/test_data/nova_data.py    |  112 +-
openstack_dashboard/test/test_data/utils.py        |    2 -
.../templates/plugin_panel/header.html             |    6 +
.../test/test_panels/plugin_panel/views.py         |   10 +
.../panel_config/_10_admin_add_panel.py            |    6 +-
openstack_dashboard/test/themes.py                 |   29 -
openstack_dashboard/test/unit/__init__.py          |    0
openstack_dashboard/test/unit/api/__init__.py      |    0
openstack_dashboard/test/unit/api/rest/__init__.py |    0
.../test/unit/api/rest/test_cinder.py              |  501 ++
.../test/unit/api/rest/test_config.py              |   26 +
.../test/unit/api/rest/test_glance.py              |  588 ++
.../test/unit/api/rest/test_keystone.py            |  817 ++
.../test/unit/api/rest/test_network.py             |  104 +
.../test/unit/api/rest/test_neutron.py             |  351 +
.../test/unit/api/rest/test_nova.py                |  986 +++
.../test/unit/api/rest/test_policy.py              |   88 +
.../test/unit/api/rest/test_swift.py               |  249 +
.../test/unit/api/rest/test_utils.py               |  249 +
openstack_dashboard/test/unit/api/test_base.py     |  332 +
openstack_dashboard/test/unit/api/test_cinder.py   |  529 ++
openstack_dashboard/test/unit/api/test_glance.py   |  351 +
openstack_dashboard/test/unit/api/test_keystone.py |  116 +
openstack_dashboard/test/unit/api/test_network.py  |  137 +
openstack_dashboard/test/unit/api/test_neutron.py  | 1432 ++++
openstack_dashboard/test/unit/api/test_nova.py     |  683 ++
openstack_dashboard/test/unit/api/test_swift.py    |  261 +
openstack_dashboard/test/unit/test_error_pages.py  |   36 +
openstack_dashboard/test/unit/test_policy.py       |  134 +
openstack_dashboard/test/unit/test_themes.py       |   29 +
openstack_dashboard/test/unit/test_views.py        |   46 +
openstack_dashboard/test/unit/usage/__init__.py    |    0
openstack_dashboard/test/unit/usage/test_quotas.py |  536 ++
openstack_dashboard/test/unit/utils/__init__.py    |    0
.../test/unit/utils/test_config_types.py           |   43 +
.../test/unit/utils/test_filters.py                |   41 +
.../themes/material/templates/header/_header.html  |    1 +
openstack_dashboard/urls.py                        |    1 +
openstack_dashboard/usage/__init__.py              |    2 +
openstack_dashboard/usage/base.py                  |  183 +-
openstack_dashboard/usage/quotas.py                |  405 +-
openstack_dashboard/usage/views.py                 |   68 +-
openstack_dashboard/utils/config.py                |   68 +
openstack_dashboard/utils/config_types.py          |  213 +
openstack_dashboard/utils/settings.py              |   26 +-
openstack_dashboard/views.py                       |   72 +
openstack_dashboard/wsgi/django.wsgi               |   25 +-
.../bp-mks-console-support-a943797a8bad14ca.yaml   |    4 +
...p-neutron-trunk-ui-queens-1d59df887b9a079a.yaml |    9 +
.../notes/bp-ng-keypairs-876c38a1a8aed60f.yaml     |   11 +
.../notes/bug-1595913-5f0cd019b7c2173a.yaml        |    5 +
.../cinder-api-v3-by-default-d6e3c12760fdf655.yaml |   11 +
.../default-keystone-api-v3-dc201adba4255752.yaml  |    9 +
.../django-version-queens-b7785b96ecbceaf0.yaml    |    5 +
.../notes/extensible-header-ac3c94f3057c1b2a.yaml  |    5 +
.../floating_ip_description-f4d2df7949b9fde9.yaml  |    6 +
.../heat-panel-splitout-b609b157aa4bf29b.yaml      |   11 +
...t-generated-automatically-4a9bf752752d09f6.yaml |   11 -
.../merge-openstack-auth-aa101f9432ba799a.yaml     |    7 +
.../neutron-default-quotas-ddd237af2935fde3.yaml   |    9 +
.../notes/ngdetail-reload-e711a77b2d07191a.yaml    |   14 +
...penstack-auth-policy-dirs-c5d77665eac415ea.yaml |   11 +
...ove-deprecated-init-scope-342153755181f0a4.yaml |    5 +
...nsfer-table-avail-changed-cfae61341b5fea71.yaml |   13 +
...-group-associate-per-port-c81ca7beb7dca409.yaml |    6 +
...eve-instance-ip-addresses-b9db6703d8b010c8.yaml |   10 +
releasenotes/source/conf.py                        |   12 +-
releasenotes/source/index.rst                      |    1 +
.../source/locale/de/LC_MESSAGES/releasenotes.po   | 4361 -----------
.../source/locale/id/LC_MESSAGES/releasenotes.po   | 4849 ------------
.../source/locale/ja/LC_MESSAGES/releasenotes.po   | 4740 -----------
.../locale/pt_BR/LC_MESSAGES/releasenotes.po       | 3239 --------
releasenotes/source/pike.rst                       |   24 +
releasenotes/source/unreleased.rst                 |   18 -
requirements.txt                                   |   29 +-
setup.cfg                                          |   10 +
test-requirements.txt                              |   22 +-
tools/executable_files.txt                         |    6 +
tools/find_executables.sh                          |   11 +
tools/gate/integration/devstack_gate_rc            |    2 +-
tools/install_venv.py                              |   73 -
tools/install_venv_common.py                       |  175 -
tools/policy-diff.py                               |   53 +
tools/pseudo.py                                    |   83 -
tools/with_venv.sh                                 |   13 -
tox.ini                                            |   40 +-
862 files changed, 63458 insertions(+), 62156 deletions(-)


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

diff --git a/requirements.txt b/requirements.txt
index 9c2385f..15df13b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17 +16,0 @@ django-compressor>=2.0 # MIT
-django-openstack-auth>=3.5.0 # Apache-2.0
@@ -19 +18 @@ django-pyscss>=2.0.2 # BSD License (2 clause)
-futurist!=0.15.0,>=0.11.0 # Apache-2.0
+futurist>=1.2.0 # Apache-2.0
@@ -21,7 +20,8 @@ iso8601>=0.1.11 # MIT
-netaddr!=0.7.16,>=0.7.13 # BSD
-oslo.concurrency>=3.8.0 # Apache-2.0
-oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
-oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
-oslo.policy>=1.23.0 # Apache-2.0
-oslo.serialization!=2.19.1,>=1.10.0 # Apache-2.0
-oslo.utils>=3.20.0 # Apache-2.0
+keystoneauth1>=3.3.0 # Apache-2.0
+netaddr>=0.7.18 # BSD
+oslo.concurrency>=3.25.0 # Apache-2.0
+oslo.config>=5.1.0 # Apache-2.0
+oslo.i18n>=3.15.3 # Apache-2.0
+oslo.policy>=1.30.0 # Apache-2.0
+oslo.serialization!=2.19.1,>=2.18.0 # Apache-2.0
+oslo.utils>=3.33.0 # Apache-2.0
@@ -31 +31 @@ pyScss!=1.3.5,>=1.3.4 # MIT License
-python-cinderclient>=3.1.0 # Apache-2.0
+python-cinderclient>=3.3.0 # Apache-2.0
@@ -33 +32,0 @@ python-glanceclient>=2.8.0 # Apache-2.0
-python-heatclient>=1.6.1 # Apache-2.0
@@ -36 +35 @@ python-neutronclient>=6.3.0 # Apache-2.0
-python-novaclient>=9.0.0 # Apache-2.0
+python-novaclient>=9.1.0 # Apache-2.0
@@ -39 +38 @@ pytz>=2013.6 # MIT
-PyYAML>=3.10.0 # MIT
+PyYAML>=3.10 # MIT
@@ -41 +40 @@ semantic-version>=2.3.1 # BSD
-six>=1.9.0 # MIT
+six>=1.10.0 # MIT
@@ -54 +53 @@ XStatic-Hogan>=2.0.0.2 # Apache 2.0 License
-XStatic-Font-Awesome>=4.7.0 # SIL OFL 1.1 License, MIT License
+XStatic-Font-Awesome>=4.7.0.0 # SIL OFL 1.1 License, MIT License
diff --git a/test-requirements.txt b/test-requirements.txt
index 41de00e..79ecc3d 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -14 +14 @@ django-nose>=1.4.4 # BSD
-doc8 # Apache-2.0
+doc8>=0.6.0 # Apache-2.0
@@ -16,2 +16,2 @@ flake8-import-order==0.12 # LGPLv3
-mock>=2.0 # BSD
-mox3!=0.19.0,>=0.7.0 # Apache-2.0
+mock>=2.0.0 # BSD
+mox3>=0.20.0 # Apache-2.0
@@ -19,4 +19,3 @@ nodeenv>=0.9.4 # BSD
-nose # LGPL
-nose-exclude # LGPL
-nosehtmloutput>=0.0.3 # Apache-2.0
-nosexcover # BSD
+nose>=1.3.7 # LGPL
+nose-exclude>=0.3.0 # LGPL
+nosexcover>=1.0.10 # BSD
@@ -24,2 +23,2 @@ openstack.nose-plugin>=0.7 # Apache-2.0
-openstackdocstheme>=1.16.0 # Apache-2.0
-reno!=2.3.1,>=1.8.0 # Apache-2.0
+openstackdocstheme>=1.18.1 # Apache-2.0
+reno>=2.5.0 # Apache-2.0
@@ -28,2 +27,3 @@ selenium>=2.50.1 # Apache-2.0
-sphinx>=1.6.2 # BSD
-testtools>=1.4.0 # MIT
+sphinx!=1.6.6,>=1.6.2 # BSD
+testscenarios>=0.4 # Apache-2.0/BSD
+testtools>=2.2.0 # MIT






More information about the Release-announce mailing list