[release-announce] [horizon] horizon 11.0.0 (ocata)

no-reply at openstack.org no-reply at openstack.org
Wed Feb 22 13:46:03 UTC 2017


We high-spiritedly announce the release of:

horizon 11.0.0: OpenStack Dashboard

This release is part of the ocata release series.

Download the package from:

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

For more details, please see below.

11.0.0
^^^^^^

The Flavor panel now may be configured to use either the legacy or
Angular code.

In an effort to establish Angular conventions, use the framework's
toastService rather than the legacy horizon.alert(...) in client-side
code. horizon.alert is still used by the django messaging framework,
so horizon.messages.js still exists.


New Features
************

* Added Keystone to Keystone (K2K) federation support in Horizon. If
  Keystone is configured with K2K and has service providers, the list
  of Keystone providers will appear in a dropdown. In
  local_settings.py you can optionally set the identity provider
  display name with "KEYSTONE_PROVIDER_IDP_NAME" or set the provider
  id that is used to compare with the other service providers
  "KEYSTONE_PROVIDER_IDP_ID". [blueprint k2k-horizon
  (https://blueprints.launchpad.net/horizon/+spec/k2k-horizon)].

* The hard-coded run_tests commands for extracting translatable
  strings and updating message catalogs have been ported to django
  management commands as extract_messages and update_catalog. These
  accept several parameters to make them easier to use with downstream
  customisations and string modifications, but the default behaviour
  is the same as before.

* The Access & Security panel's tabs have been moved to their own
  panels for clearer navigation and better performance. API Access and
  Key Pairs now reside in the Compute panel group. Floating IPs and
  Security Groups are now in the Network panel group.

* Download buttons for OpenStack RC files have been added to the
  user dropdown menu in the top right of Horizon.

* Implements the "filter first" functionality for identity panels
  such as projects, users, groups and roles. The filter first
  functionality is described in
  <https://blueprints.launchpad.net/horizon/+spec /admin-views-filter-
  first>`

* ANGULAR_FEATURES now allows for a key 'flavors_panel' to be
  specified as True or False indicating whether the Angular version of
  the panel is enabled.

* Integration tests for Flavor features may also be toggled in
  openstack_dashboard/test/integration_tests/horizon.conf using the
  'panel_type' feature in the 'flavors' setting, either set to
  'legacy' or 'angular' to match the enabled panel type.

* A new Profiler panel in the Developer dashboard is introduced. It
  integrates osprofiler library
  (http://docs.openstack.org/developer/osprofiler/) into horizon, thus
  implementing blueprint openstack-profiler-at-developer-dashboard
  (https://blueprints.launchpad.net/horizon/+spec/openstack-profiler-
  at-developer-dashboard). Initially profiler is disabled. To enable
  it the value "OPENSTACK_PROFILER['enabled']" has to be "True". This
  in turn can be achieved by copying files
  _9030_profiler_settings.py.example and _9030_profiler.py to opensta
  ck_dashboard/local/local_settings.d/_9030_profiler_settings.py and
  openstack_dashboard/local/enabled/_9030_profiler.py respectively.
  Also, by default it expects MongoDB cluster to be present on the
  same host where Keystone is located (say, in a Devstack VM). But it
  also can be configured with params with
  "OPENSTACK_PROFILER['notifier_connection_string]'" and
  "OPENSTACK_PROFILER['receiver_connection_string']" values. MongoDB
  should be installed manually
  (https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu
  /#install-mongodb-community-edition) and allowed to receive requests
  on 0.0.0.0 interface.


Upgrade Notes
*************

* The "TEMPLATE_*" settings have been replaced with a "TEMPLATE"
  dict. This will likely cause issues when porting settings to this
  version of Horizon. The TEMPLATE_DEBUG setting has been removed and
  is tied to the DEBUG setting now. A detailed explanation of this
  dict can be found at
  https://docs.djangoproject.com/en/1.10/ref/settings/#templates

* The "is_authenticated()" and "is_anonymous()" functions in Django
  OpenStack Auth's "User" class are properties when running under
  Django 1.10, and no longer take a margin parameter.

* The logos in Horizon (previously logo-splash.png and logo.png) now
  load SVG files instead of PNG. The default logos have been updated
  to reflect the new OpenStack branding.

* LBaaS v1 dashboard has been removed. LBaaS v1 feature was removed
  from neutron-lbaas in Newton, but LBaaS v1 dashboard in Horizon has
  been kept only for backward compatibility in Newton release so that
  operators can upgrade Horizon first. Note that the Dashboard support
  for LBaaS v2 is provided as a Horizon plugin via neutron-lbaas-
  dashboard project.

* The developer enabled files have been moved from
  "openstack_dashboard/enabled" to
  "openstack_dashboard/contrib/developer/enabled". To enable them,
  copy into "openstack_dashboard/local/enabled" and set "DEBUG =
  True".

* Any past use of the Django based Swift UI is no longer supported
  and the code is being removed. The new angularJS based version
  should be used instead.

* The Angular Bootstrap upgrade contains a breaking change as the
  directives and services in this library were renamed. See
  https://github.com/angular-ui/bootstrap/wiki/Migration-guide-for-
  prefixes


Deprecation Notes
*****************

* The run_tests.sh script is now deprecated and all functionality
  has been provided by either tox or manage.py. run_tests will be
  removed in Queens (13.0).

* The initScope method for action services has been deprecated, with
  the new method initAction added which does not get passed a scope.
  The allowed and perform method are now passed a scope for context in
  addition to the first item/items argument. The "scope" parameter to
  the WizardModalService modal() method has also been deprecated, and
  will be ignored in a future release of Horizon.

* The function fix_auth_url_version() should be removed from
  openstack_auth library as soon as Horizon no longer needs it. The
  replacement function is fix_auth_url_version_prefix() which returns
  a fixed url and a boolean flag indicating if the url was actually
  fixed. Having a separate flag allows to emit more precise warning
  messages about inconsistencies in Keystone endpoint URL.

* The telemetry code in Horizon has been deprecated and disabled for
  several releases now. The code has now been removed from the tree.

* Removing formerly deprecated Swift UI code that was replaced with
  an improved Angular version in Mitaka.

* All previous instances of horizon.alert(...) used by client-side
  have been replaced with horizon.toast. Alert messages via
  horizon.alert(...) should be avoided when writing new JavaScript
  code. horizon.toast.add('error', gettext(...)) should be used
  instead.


Bug Fixes
*********

* [bug 1618235] User can now delete all characters typed in input
  search  without causing the selected facet to disappear when the
  last character is deleted.

* [bug 1635505] Horizon now properly allows to use arrow keys inside
  of the input search, without triggering a new text search that
  refreshes the content of the table below.

* There will no longer be any "WARNING" messages regarding the
  developer panels in logs.


Other Notes
***********

* Menu follows the search input position as the user adds more
  facets

* XStatic-Angular updated from 1.4.10.1 to 1.5.8.0

* XStatic-Angular-Bootstrap updated from 0.11.0.0 to 2.2.0.0

* XStatic-Angular-Gettext updated from 2.1.0.2 to 2.3.8.0

* XStatic-Bootswatch updated from 3.3.6.0 to 3.3.7.0

* XStatic-D3 updated from 3.1.6.2 to 3.5.17.0

* XStatic-Font-Awesome updated from 4.5.0.0 to 4.7.0.0

* XStatic-JSEncrypt updated from 2.0.0.2 to 2.3.1.0

* XStatic-Roboto-Fontface updated from 0.4.3.2 to 0.5.0.0

Changes in horizon 10.0.0.0rc1..11.0.0
--------------------------------------

30d0a31 Use domain_context not effective domain to display domains list
1227d3e Disentangle domain context from effective domain
bef9bfe Imported Translations from Zanata
be7e90f Update UPPER_CONSTRAINTS_FILE for stable/ocata
e95a154 Imported Translations from Zanata
5be9103 Updated from global requirements
7f67040 Imported Translations from Zanata
4686c02 Fix wrong min/max media queries for sidebar
74c5505 Fix ignored timezone value from local_settings
facf9d3 Remove deprecated calls to novaclient.v2.contrib
a8eae31 Check if user.token attribute exists
f5aefa0 Fix reporting of profiler traces with multiple toplevels
4305ddd Pass the project domain ID to novaclient
8566120 Fix Hypervisors page
1189fb7 Update .gitreview for stable/ocata
0409080 i18n: The same use of args with ugettext_lazy
002bdf0 Release notes for XStatic updates
ce7dc70 Imported Translations from Zanata
e269806 Move Security Groups into its own panel
99849ad Move Floating IPs from Access & Security to panel
4f654e3 Imported Translations from Zanata
6cc7d0b Fixes typo in syntax of DataTables row_actions
1064803 Improve API Access Credentials template
7c4e85f Imported Translations from Zanata
aa444a6 Add OpenStack RC Download buttons to user menu
6b2b226 Make API Access a panel under compute
60db026 wrong indentations
1a58a1f Make Key Pairs tab a panel under Compute
98b20e4 Imported Translations from Zanata
5e5c64d Imported Translations from Zanata
675d369 Imported Translations from Zanata
2e66521 Dashboard panels intermittently disappear when they are in the 'default' group.
f3dd5b9 Updated from global requirements
41ee8c0 Fix TypeError in api/neutron.py
b98a3a7 Remove log level adjustment in heat test data
9397311 Update default OpenStack branding across Horizon
8f2ac59 Updated from global requirements
f9c6b43 Imported Translations from Zanata
20db9d9 Try to use 2.40 microversion for simple-tenant-usages
107bd08 Simple tenant usage pagination
3e15b53 Imported Translations from Zanata
90a9af2 Autogenerate container name correctly for vol backup
2f5a258 Fix issues on create network and create port modals
73f8675 Support to delete instance from network topology view
600620a Configuring number of apache processes
b7c00ea Imported Translations from Zanata
5379945 Updated from global requirements
33fcd95 Implement "filter first" for identity panels
69eb05a Keystone to Keystone Federation Drop Down
eddef8f Snapshot not selected by default when launching it from images
a194157 Fix Angular tabs
eb60a2a [flavor update] Fixing a flavor comparation issue
7116453 delete unused import
a21b51e Fix alignment issues for nav-tabs and ul on details panels
d3d89c9 Fake deprecated nova client properties
d2ec7d3 use safer method splitlines() to replace split('\n')
f321f6c Imported Translations from Zanata
e152d39 New Identity NG Panels missing stuff in settings.py/rst
196cd93 Imported Translations from Zanata
12f3285 Containers list styling fix
e766877 Imported Translations from Zanata
e1f37f0 Imported Translations from Zanata
8743440 Prevent a "link" click on container trash icon
158a4c1 Imported Translations from Zanata
49a5e68 Add missing scheduler_hints to _optional_create
cc94b0f Adding identity domains table
fab662a Imported Translations from Zanata
d4083d1 Fix spec file variable/ improve code coverage
0402102 Reuse Overview tab for Admin Volume Snapshots
fea9751 Imported Translations from Zanata
5cb3703 Add Angular keystone user details use registry
fa09d90 DOC Remove duplicated words
560f23a Add default common template to python table views
001c2a1 Adding identity ng-roles panel
a167c37 Hide heatclient spam
83e3ff8 Remove duplicated modal_header statements
4c81bc2 Make evacuate target_host not required
c1c84b7 Imported Translations from Zanata
ca69e6a Remove trailing backtick
5bce9a0 Fix single policy rule handling
8e03e51 Revert "Add policy rules to project panels"
74a3856 Imported Translations from Zanata
870c9b7 Remove unused import
4174420 Imported Translations from Zanata
0de98e5 fix wrong path in doc
e2cf94e Enable profiling of angular pages (with async requests)
87d307d Add Zun UI to Horizon Plugin Registry
46c2ad6 Add col-sm-12 to network modal error
59741bd Add policy rules to project panels
dbe5020 fix some pylint warnings
d179139 Imported Translations from Zanata
c9034ec Remove shared checkbox for non-admin users when doing network things.
0a8094d Improve novaclient initialisation
30c3816 Revert "Fix the flicker of the log on button name"
04065cf Action-list: Update for ui bootstrap changes
2951758 Move js files into openstack_dashboard folder.
9524bb1 Imported Translations from Zanata
7b29869 Fix syntax error with settings in doc
f09a9ce Use the new fix_auth_url_version_prefix() call
c8f0553 Imported Translations from Zanata
2e659a6 Columns typo fixed
c89633c Update for ui bootstrap changes
85d74cb Remove redundant parentheses
a137570 When the api call failed, approprate failing message will be show
578b63b Resize instance error fixed.
124bbb3 AngularJS based panels page title updated
beb821e Revert "Turn off angular template cache preloading when DEBUG=True"
d85a5b4 remove to_dict method of Network in neutron.py
203bf03 Cleanup CSS on NG Create Image Modal
9c60011 NG Flavor Panel add filter facets
f6b0beb Text and checkbox should align in "Create Project" form
f565b2c Imported Translations from Zanata
51fe944 Replace six.iteritems(iter) with iter.items()
f0dc5c3 Removes unnecessary utf-8 encoding
cd2a790 The minimum volume size should be pre-populated
7e150b2 Make the form _clean_rule_custom method full-fledged
733709a Imported Translations from Zanata
9647195 UX: Bullets in Launch Instance Wizard don't have left-padding
f8851fb Use assertGreater(len(x), 0) instead of assertTrue(len(x) > 0)
d219f60 Turn off angular template cache preloading when DEBUG=True
8f58f66 hzResourceProperty can handle 'priority' attribute
981ee96 [trivial]Add support keys for OPENSTACK_NEUTRON_NETWORK in doc
3f1e0fa Allow OVA upload for images
691ab23 Simplify uuid without dashed
09336a0 remove unused string in neutron create subnet workflow
1b153ca Allow router panel to not break sidebar
019e549 Remove additional response.render() for tabs
13b9b84 Imported Translations from Zanata
1dc71e0 Reduce code duplication
371f463 Show team and repo badges on README
40e7353 Updated from global requirements
b764160 Imported Translations from Zanata
2fbf3fb Fix a script error which is occurred when choosing no file
97b7aa8 Updated from global requirements
e2f6b7d Angular images deactivate status fix
3485c80 Updated from global requirements
9265cdc Updated from global requirements
b01c028 Add Apache 2.0 license to source file
97945b5 Wrap api calls with tracing decorators
4ceeef5 Add the Profiler panel to the Developer dashboard
7929859 Images table name updated to id when name is None
eab9ea1 Imported Translations from Zanata
a187ea1 Update path of JS coverage reports
6f8504d Bug fixes Magic Search
e1ef708 Missing info on MELLON_IDP for mod_auth_mellon
36d1d1a Refactor tox & update docs
6585659 Update settings docs with using ANGULAR_FEATURES for dev
9963867 Enable sorting by size in containers pane
255de3d Use os.path.relpath in place of string.replace
ac45574 Imported Translations from Zanata
c1873ea Update floating IP tables instance URL check
23c482b Strip whitespace added to flavor name in create and update flavor.
2c104cc Make default domain usage consistent
a909ed2 Add constraints support to run_tests.sh
fca1dab implements: make twice list iterations into one Closes-Bug: 1644817
f5685eb Specify POLICY_CHECK_FUNCTION as a string
706298e ceilometerclient removed from requirements.txt
68d9e37 Imported Translations from Zanata
f2eaafc Fix mox trapped errors
9181305 Note how to use local.conf in stable branches
c0e30b7 Updated from global requirements
f9b3bc7 Remove use of scope from action service
b433419 Imported Translations from Zanata
f1ef808 Rename Size column on instances tables to Flavor
837587f Improve Horizon nav sidebar
c46b501 Imported Translations from Zanata
624ac8d Updated from global requirements
89d0304 Add i18n support to Quota.humanizeNumbers
15484a5 Trivial fixes for Swift UI
df68cfa Remove local/enabled from test settings
1db5dbf Imported Translations from Zanata
4fe36b9 Amend Roboto font paths
00958cd Add generic session/cookie value getters/setters
706b92d Imported Translations from Zanata
3c02553 Updated from global requirements
1ca1a4c Magic Search in Angular Users table
43e9df8 Rework hardcoded policy in admin dash
965809f Revert "Comment out material theme for gate to proceed"
8b44576 Change icons in launch instance ng transfer
44132fa Fix issues with new roboto-font path changes
1a3ab89 Disable router and fip quotas when router is disabled
84c238d Revert "In Images Overview, dates should be properly formatted"
58a94c6 Comment out material theme for gate to proceed
b8cacab Remove broken telemetry policy check
e980382 Fix npm tests
24179c7 Imported Translations from Zanata
20ea82b Removing deprecate ceilometer code
9f75312 Removing deprecated Swift UI code
8c7c333 Consolidated common angular view
b15645d Imported Translations from Zanata
670ef48 Updated from global requirements
bf5e2d4 Imported Translations from Zanata
f7b271d Normalise the path to resolve ../..
4070697 Remove Unneeded API Calls, Functions
8c58cec Imported Translations from Zanata
1ee056f Update Angular Users Table use registry
36ed065 Link to the user details from action log
316fedf Make sure new password can not the same with old one
6519ce4 Get security groups of an instance using novaclient
016724d Set the placeholder attribute in forms.py
3d042a2 Correct installation command to include upper-constraints
55bd890 Document exception handling
dd98e10 Provide the bones of profiler: api and middleware
06cc156 Imported Translations from Zanata
30011bf Updated from global requirements
4cfd243 Strip leading or trailing spaces from Instance names during update and create
82511ea Renamed bootstrap theme preview page
b5934b8 Remove unnecessary variable assignment
7966258 Replaces uuid.uuid4 with uuidutils.generate_uuid()
8c17f76 Imported Translations from Zanata
faa55c1 Migrate Swift to use ResourceType
9841990 Create common code for horizon.instances.js and horizon.firewalls.js
93eccd5 Imported Translations from Zanata
f8b5df9 Updated from global requirements
923e9b2 Imported Translations from Zanata
7ed2865 Updated from global requirements
55baf92 "Unable to retrieve Domain" incessant warning logs
18c90b4 Launch Instance: Creating new volume for image snapshot
6db8fd8 Add LOCALE_PATHS to settings
b2ed775 Update Horizon's example local.conf
32eac39 Imported Translations from Zanata
5b998ed Imported Translations from Zanata
c74d5d6 Imported Translations from Zanata
7014f2b Imported Translations from Zanata
ae61289 Updated from global requirements
a4af4e0 Add appropriate policy rules to admin images panel
d7d59b8 Remove all_tenants flag in quota check
b4e3ff1 Update customizing.rst with a how to use the NG registry
2ed2f32 Imported Translations from Zanata
5ff87d8 Updated from global requirements
85df9f4 Remove type field and type description for create volume from a snapshot
d51e500 Imported Translations from Zanata
0a80626 Migrate Create Container to schema form
05a6b4a Updated from global requirements
71bb8ae Add upgrade notes for new REST_API_REQUIRED_SETTINGS
9f8a81a Default ethertype to IPv4 if Neutron's enable_ipv6 is false
18e96fc Imported Translations from Zanata
363001b Fix labels on subnet details panel
ad728fa Render inaccessible ports as text versus links.
9caef64 Fix Port Security Enabled information
0b53bce Imported Translations from Zanata
bba45a7 Fix typo
0446c92 Updated from global requirements
2f2222d Allow POLICY_CHECK_FUNCTION to be disabled
1cf2b29 Fix two closing tags on subnet details template
42e37f8 Imported Translations from Zanata
7e64a1c Drop LBaaS v1 dashboard
51410e5 Remove network name from create subnet error message
70d2059 Image listing by visibility fix
45ca5b2 Update the wording of date format on overview panel
69e18fc Server-side filtering Orchestration
780b1c4 Fixing typo in horizon widgets
ea23856 Updated from global requirements
d231186 Imported Translations from Zanata
e483dd0 Project table has an extra Enabled column definition
276eaf3 OS_INTERFACE was errantly added to the V2 openrc
d556a82 Clear cached selected items on swift objects table
735ef03 Fixing typo in release note
f047962 Add the slaac ipv6 address mode without ra mode
14a9790 Imported Translations from Zanata
3a56958 Adds Policy Rules to Project Images panel
e8e84c2 Flavors panel can switch to Angular
19e5f43 Minor updates to angularjs.rst
8130a79 Add Keystone Groups to REST API
b2eb8de Imported Translations from Zanata
1d13a05 Remove hardcode of container_name in backups
6bde531 Minor release notes fix
5e4a31a Imported Translations from Zanata
822a44d Imported Translations from Zanata
8baf0b8 In Images Overview, dates should be properly formatted
a2de341 Remove unnecessary translate mark
1f8022d Enable release notes translation
142cfab add ploop type to the list of image backends
f0f7000 Fix logspam in django 1.9 and django 1.10 tests
c30a1ea Fix for swift ui displaying infinite folders
8ce6e6c Update Glance sample policy file
d9c9984 Drop the undesired executable bit from non-executable file
f390c4a Add deprecation message to run_tests.sh
d8c878f missing action_class in sample code
2bef59f Fix a typo in documentation
e43fb80 Move browser support wiki page into the docs
4f96c01 Imported Translations from Zanata
5f81a7d Imported Translations from Zanata
0484faf Imported Translations from Zanata
447f631 Updated from global requirements
be934e5 Make ResourceTypesTests skippable
c669cf0 Imported Translations from Zanata
42ae3db Topology filter out non tenant ports
7d3073d Using /tmp for SECRET_KEY in tests
27a816c Imported Translations from Zanata
1b176db Updated from global requirements
d2f7df4 Fix a typo
44afeac [Trivial]remove unnecessary commna
f23b7d1 Fix tox cover to not fail
11e70e6 Updated from global requirements
244464b Behavioral fixes to Magic-Search
7f46e5d Enable volumes metadata update
92a265d Remove unused line from local_settings.py.example
17c984f Fixed serial console not appearing in horizon
9935d46 Imported Translations from Zanata
8887848 Fix unnecessary bullet point
53ae6d3 Fix Container details styles
e01c54b i18n: Add Indonesian to the language list
a6b2164 Imported Translations from Zanata
b94f060 A following up patch for 'Added the pagination info at top of the table'
ce3a0fb Fix the flicker of the log on button name
97d5435 doc: Update middleware API ref to include all middlewares
7d8d1fa Make "Detach Volume" in Instances page translatable
49c942d Add volume snapshot to boot source description
cfa9ce4 Show tab label in Admin CreateSubnet/UpdateSubnet form
f880f6c Turn on docs warning check in document generation
215ccba doc: Do not generate no source code reference
35d2bec Fix docstring warnings
ee04fca Fix warnings in devref document
b65b476 Added the pagination info at top of the table
b6cdf34 Updated from global requirements
723e547 Fix Launch Instance without Cinder
fbbe16f Move Developer enabled/ files to contrib
b89c1ab Multiple integration test fixes
07185ec Fix the exapmle of how to use customization_module
3e590ea Hide shelve/unshelve actions of a locked instance for non-admin users
2425e6e Fix metadata removal
b016b08 Fix the wrong usage of assertTrue
4abe3ef Fix typos in contributing.rst & policy.service.js
14ab4d1 Fixed inconsistent names set for BatchAction
d99444b Display the right floating ip on LB disassociation
71301f8 test: Use appropriate test data in VolumeViewTests
2fec0a1 Fix the collection of integration tests artifacts
3488ab3 Fix compatibility issues with Django 1.10
3aeb73c Move past release notes under doc/ to releasenotes/
ff973d2 Imported Translations from Zanata
6436212 i18n: Avoid string concatenations to make translation life happier
5d64e2d Quota cleanup of dynamic methods
6609420 Fix getting the images list in Admin->Images
515dc27 Imported Translations from Zanata
b68abc0 Edit unclosed div tag
4340fc2 Remove duplicated inappropriate 'translate' tag
90d7a3f Imported Translations from Zanata
32bb3d7 Update reno for stable/newton
e42aaf6 Imported Translations from Zanata
cf5650f Allow translator to control word order in delete confirm dialog
460a53f Server-side filtering for Instances (Project/Admin)
312731a Replace 'assertTrue(a in b)' with 'assertIn(a, b)'
c2adfc7 py3:Remove six.iterXXX
b2e99db Make flavor updating compatible with nova cli
be6bcef Let Nova to pick availability zone if more than 1
65d9339 hide check box if need
cb664ec Fixes traceback if group name attribute is missing
47c6bba Volume limits and floating ip  graphic label consistency
f2c0504 replace horizon.alert used by client-side with horizon.toast
89efd7f Fix jasmine test failures due to missing ngRoute, schema-form dep
212e8b8 Fix volume storage usage value
6b9dc6a Added policy checks for Project>Volumes Panel
0568f86 Add metadata in snapshot details page
5ea8482 Usage tables: Sort by disk properly
42ac50b Simplify chained comparison
577c169 Register keytone resource types
16b58d2 modified condition variable project_choices
b1373e0 Reset flavors for other than "Boot from Image" source type.
9d732ab Remove repetition of "Attached to" in table
4b1cb06 take time zone into account
d04fcc4 DataTable column level policy


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

.gitignore                                         |    2 +-
.gitreview                                         |    1 +
README.rst                                         |    2 +
horizon/base.py                                    |   17 +-
horizon/browsers/views.py                          |   11 +
horizon/exceptions.py                              |    2 +-
horizon/forms/fields.py                            |    6 +-
horizon/karma.conf.js                              |   19 +-
horizon/locale/ca/LC_MESSAGES/django.po            |    7 +-
horizon/locale/cs/LC_MESSAGES/django.po            |   46 +-
horizon/locale/cs/LC_MESSAGES/djangojs.po          |  189 +-
horizon/locale/de/LC_MESSAGES/django.po            |   43 +-
horizon/locale/de/LC_MESSAGES/djangojs.po          |  182 +-
horizon/locale/en_AU/LC_MESSAGES/django.po         |   60 +-
horizon/locale/en_AU/LC_MESSAGES/djangojs.po       |  195 +-
horizon/locale/en_GB/LC_MESSAGES/django.po         |   16 +-
horizon/locale/en_GB/LC_MESSAGES/djangojs.po       |   80 +-
horizon/locale/es/LC_MESSAGES/django.po            |   16 +-
horizon/locale/es/LC_MESSAGES/djangojs.po          |  100 +-
horizon/locale/es_MX/LC_MESSAGES/django.po         |   13 +-
horizon/locale/fi_FI/LC_MESSAGES/django.po         |   13 +-
horizon/locale/fil/LC_MESSAGES/django.po           |    7 +-
horizon/locale/fr/LC_MESSAGES/django.po            |   40 +-
horizon/locale/fr/LC_MESSAGES/djangojs.po          |  189 +-
horizon/locale/hi/LC_MESSAGES/django.po            |   13 +-
horizon/locale/hi/LC_MESSAGES/djangojs.po          |  182 -
horizon/locale/hu/LC_MESSAGES/django.po            |    7 +-
horizon/locale/id/LC_MESSAGES/django.po            |   34 +-
horizon/locale/id/LC_MESSAGES/djangojs.po          |   80 +-
horizon/locale/it/LC_MESSAGES/django.po            |   13 +-
horizon/locale/it/LC_MESSAGES/djangojs.po          |   77 +-
horizon/locale/ja/LC_MESSAGES/django.po            |   39 +-
horizon/locale/ja/LC_MESSAGES/djangojs.po          |  193 +-
horizon/locale/ko_KR/LC_MESSAGES/django.po         |   50 +-
horizon/locale/ko_KR/LC_MESSAGES/djangojs.po       |   92 +-
horizon/locale/nl_NL/LC_MESSAGES/django.po         |    7 +-
horizon/locale/nl_NL/LC_MESSAGES/djangojs.po       |   56 +-
horizon/locale/pa_IN/LC_MESSAGES/django.po         |   13 +-
horizon/locale/pa_IN/LC_MESSAGES/djangojs.po       |   56 +-
horizon/locale/pl_PL/LC_MESSAGES/django.po         |  104 +-
horizon/locale/pl_PL/LC_MESSAGES/djangojs.po       |  105 +-
horizon/locale/pt/LC_MESSAGES/django.po            |   13 +-
horizon/locale/pt_BR/LC_MESSAGES/django.po         |   81 +-
horizon/locale/pt_BR/LC_MESSAGES/djangojs.po       |  121 +-
horizon/locale/ru/LC_MESSAGES/django.po            |   45 +-
horizon/locale/ru/LC_MESSAGES/djangojs.po          |  123 +-
horizon/locale/sl_SI/LC_MESSAGES/django.po         |    7 +-
horizon/locale/sr/LC_MESSAGES/django.po            |    7 +-
horizon/locale/sr/LC_MESSAGES/djangojs.po          |  165 -
horizon/locale/tr_TR/LC_MESSAGES/django.po         |   83 +-
horizon/locale/tr_TR/LC_MESSAGES/djangojs.po       |  194 +-
horizon/locale/zh_CN/LC_MESSAGES/django.po         |   51 +-
horizon/locale/zh_CN/LC_MESSAGES/djangojs.po       |   87 +-
horizon/locale/zh_TW/LC_MESSAGES/django.po         |   79 +-
horizon/locale/zh_TW/LC_MESSAGES/djangojs.po       |  184 +-
horizon/management/commands/startdash.py           |    1 -
horizon/middleware/base.py                         |    7 +-
horizon/middleware/operation_log.py                |   25 +-
horizon/static/framework/conf/conf.js              |   14 +
.../conf/resource-type-registry.service.js         |   13 +-
.../conf/resource-type-registry.service.spec.js    |   18 +-
horizon/static/framework/framework.module.js       |   14 +
.../util/actions/action-result.service.js          |    2 +-
.../framework/util/bind-scope/bind-scope.spec.js   |   14 +
.../util/extensible/extensible.service.spec.js     |   14 +
.../static/framework/util/filters/filters.spec.js  |   14 +
horizon/static/framework/util/http/http.spec.js    |   30 +-
horizon/static/framework/util/util.module.js       |   14 +
.../framework/util/validators/validators.spec.js   |   14 +
.../framework/util/workflow/workflow.spec.js       |   14 +
.../widgets/action-list/actions.controller.js      |    6 +-
.../widgets/action-list/actions.directive.js       |   68 +-
.../widgets/action-list/actions.service.js         |    2 +-
.../widgets/action-list/split-button.html          |    2 +-
.../static/framework/widgets/details/details.html  |    8 +-
horizon/static/framework/widgets/form/decorator.js |   14 +
.../framework/widgets/form/decorator.spec.js       |    3 -
.../widgets/form/modal-form.controller.js          |    8 +-
.../widgets/form/modal-form.controller.spec.js     |    2 +-
.../framework/widgets/form/modal-form.service.js   |    6 +-
.../widgets/form/modal-form.service.spec.js        |   10 +-
.../magic-search/magic-search.controller.js        |  117 +-
.../magic-search/magic-search.controller.spec.js   |  123 +-
.../widgets/magic-search/magic-search.html         |    8 +-
.../widgets/magic-search/magic-search.scss         |    4 +
.../modal-wait-spinner.directive.js                |   14 +
.../modal-wait-spinner.service.js                  |   20 +-
.../modal-wait-spinner/modal-wait-spinner.spec.js  |   14 +-
.../widgets/modal/simple-modal.controller.js       |    8 +-
.../widgets/modal/simple-modal.service.js          |    8 +-
.../framework/widgets/modal/simple-modal.spec.js   |    4 +-
.../widgets/modal/wizard-modal.service.js          |   20 +-
.../widgets/modal/wizard-modal.service.spec.js     |    2 +-
.../framework/widgets/modal/wizard.controller.js   |   18 +-
.../widgets/modal/wizard.controller.spec.js        |   10 +-
.../property/hz-resource-property.controller.js    |    7 +
.../property/hz-resource-property.directive.js     |   10 +-
.../hz-resource-property.directive.spec.js         |   65 +
.../framework/widgets/table/hz-detail-row.html     |    4 +-
.../framework/widgets/table/hz-dynamic-table.html  |    7 +
.../widgets/table/hz-dynamic-table.spec.js         |   10 +-
.../widgets/table/hz-resource-table.controller.js  |    2 +-
.../transfer-table/transfer-table.controller.js    |    4 +-
.../transfer-table/transfer-table.example.html     |    4 +-
.../widgets/wizard/modal-container.controller.js   |    8 +-
.../framework/widgets/wizard/wizard.controller.js  |    5 +-
.../static/framework/widgets/wizard/wizard.spec.js |    2 +-
.../horizon/js/angular/directives/serialConsole.js |  107 -
horizon/static/horizon/js/horizon.communication.js |   14 +
horizon/static/horizon/js/horizon.d3barchart.js    |   14 +
horizon/static/horizon/js/horizon.d3linechart.js   |   17 +-
horizon/static/horizon/js/horizon.d3piechart.js    |   14 +
horizon/static/horizon/js/horizon.datepickers.js   |   14 +
horizon/static/horizon/js/horizon.firewalls.js     |  265 -
.../horizon/js/horizon.flatnetworktopology.js      |  619 --
horizon/static/horizon/js/horizon.forms.js         |   37 +-
horizon/static/horizon/js/horizon.formset_table.js |   14 +
horizon/static/horizon/js/horizon.heattop.js       |   14 +
horizon/static/horizon/js/horizon.instances.js     |  320 -
horizon/static/horizon/js/horizon.js               |   17 +
horizon/static/horizon/js/horizon.lists.js         |  144 +
horizon/static/horizon/js/horizon.membership.js    |   14 +
horizon/static/horizon/js/horizon.messages.js      |   14 +
horizon/static/horizon/js/horizon.metering.js      |   32 -
horizon/static/horizon/js/horizon.modals.js        |   22 +-
.../static/horizon/js/horizon.networktopology.js   | 1076 ---
.../horizon/js/horizon.networktopologycommon.js    |  149 -
horizon/static/horizon/js/horizon.quota.js         |  439 -
horizon/static/horizon/js/horizon.selenium.js      |    9 +-
horizon/static/horizon/js/horizon.sidebar.js       |   29 +
horizon/static/horizon/js/horizon.tables.js        |   20 +-
.../horizon/js/horizon.tables_inline_edit.js       |   22 +-
horizon/static/horizon/js/horizon.tabs.js          |   14 +
horizon/static/horizon/js/horizon.templates.js     |   14 +
horizon/static/horizon/js/horizon.users.js         |   14 +
horizon/static/horizon/js/horizon.volumes.js       |   72 -
.../horizon/lib/jquery/jquery.bootstrap.wizard.js  |   14 +
horizon/tables/actions.py                          |    8 +-
horizon/tables/base.py                             |   45 +-
horizon/tables/views.py                            |    6 +-
horizon/tabs/__init__.py                           |    1 +
horizon/tabs/base.py                               |    4 +
horizon/tabs/views.py                              |   10 -
horizon/templates/auth/_splash.html                |    2 +-
horizon/templates/horizon/_sidebar.html            |   28 +-
.../templates/horizon/client_side/_confirm.html    |    4 +-
horizon/templates/horizon/common/_data_table.html  |   18 +-
.../horizon/common/_data_table_pagination.html     |   17 +
.../templates/horizon/common/_data_table_view.html |    3 +
.../horizon/common/_detail_tab_group.html          |    2 +
horizon/templates/horizon/common/_form_errors.html |    4 +-
.../common/_keystone_provider_selector.html        |   20 +
horizon/templates/horizon/common/_modal.html       |    2 +-
horizon/templates/horizon/common/_sidebar.html     |    4 +-
horizon/templates/horizon/common/_tab_group.html   |    2 +-
.../templates/horizon/common/_usage_summary.html   |    2 +-
.../common/_workflow_step_update_members.html      |    4 +-
horizon/templates/horizon/jasmine/jasmine.html     |    3 -
horizon/templatetags/breadcrumb_nav.py             |    6 +-
horizon/templatetags/horizon.py                    |   10 +-
horizon/test/firefox_binary.py                     |   34 +-
horizon/test/settings.py                           |   38 +-
horizon/test/test_dashboards/cats/kittens/views.py |   12 +
horizon/test/test_dashboards/cats/tigers/views.py  |   12 +
horizon/test/test_hacking.py                       |   60 +-
horizon/utils/file_discovery.py                    |    2 +-
horizon/utils/functions.py                         |   86 +-
horizon/utils/memoized.py                          |    6 +-
horizon/utils/settings.py                          |   28 +
horizon/views.py                                   |   17 +-
horizon/workflows/base.py                          |   51 +-
horizon/workflows/views.py                         |    2 +-
openstack_dashboard/api/__init__.py                |    4 -
openstack_dashboard/api/base.py                    |    6 +-
openstack_dashboard/api/ceilometer.py              | 1345 ---
openstack_dashboard/api/cinder.py                  |   99 +-
openstack_dashboard/api/fwaas.py                   |   21 +
openstack_dashboard/api/glance.py                  |   31 +-
openstack_dashboard/api/heat.py                    |   39 +-
openstack_dashboard/api/keystone.py                |   99 +-
openstack_dashboard/api/lbaas.py                   |  394 -
openstack_dashboard/api/neutron.py                 |  107 +-
openstack_dashboard/api/nova.py                    |  225 +-
openstack_dashboard/api/rest/cinder.py             |   96 +
openstack_dashboard/api/rest/keystone.py           |   18 +
openstack_dashboard/api/rest/nova.py               |   10 +-
openstack_dashboard/api/rest/swift.py              |    3 +
openstack_dashboard/api/rest/utils.py              |   11 +-
openstack_dashboard/api/swift.py                   |   20 +-
openstack_dashboard/api/vpn.py                     |   21 +
openstack_dashboard/conf/ceilometer_policy.json    |    6 -
openstack_dashboard/conf/glance_policy.json        |   31 +-
openstack_dashboard/context_processors.py          |   36 +
openstack_dashboard/contrib/developer/dashboard.py |    4 +-
.../contrib/developer/enabled/_9001_developer.py   |   29 +
.../contrib/developer/enabled/_9010_preview.py     |   21 +
.../developer/enabled/_9020_resource_browser.py    |   20 +
.../contrib/developer/enabled/_9030_profiler.py    |   21 +
.../contrib/developer/enabled/__init__.py          |    0
.../contrib/developer/profiler/__init__.py         |    0
.../contrib/developer/profiler/api.py              |  132 +
.../contrib/developer/profiler/middleware.py       |  133 +
.../contrib/developer/profiler/panel.py            |   25 +
.../profiler/templates/profiler/_mode_picker.html  |   21 +
.../profiler/templates/profiler/index.html         |   49 +
.../contrib/developer/profiler/urls.py             |   24 +
.../contrib/developer/profiler/views.py            |   49 +
.../contrib/developer/resource_browser/urls.py     |    4 +-
.../contrib/developer/resource_browser/views.py    |   19 -
.../static/dashboard/developer/developer.module.js |    7 +-
.../static/dashboard/developer/developer.scss      |    1 +
.../developer/profiler/profiler.controller.js      |  161 +
.../developer/profiler/profiler.details.html       |   17 +
.../developer/profiler/profiler.directive.js       |   87 +
.../developer/profiler/profiler.module.js          |   59 +
.../dashboard/developer/profiler/profiler.scss     |    5 +
.../developer/profiler/profiler.trace-table.html   |   20 +
.../developer/profiler/profiler.tree-node.html     |   28 +
.../resource-browser-item.controller.js            |    3 +-
.../resource-browser/resource-browser.module.js    |    7 +-
.../theme-preview/theme-preview.directive.js       |    6 +-
.../developer/theme-preview/theme-preview.html     |    4 +-
.../contrib/developer/theme_preview/panel.py       |    3 +-
.../dashboards/admin/aggregates/panel.py           |    1 +
.../dashboards/admin/aggregates/tables.py          |    4 +-
openstack_dashboard/dashboards/admin/dashboard.py  |    3 +-
.../dashboards/admin/defaults/panel.py             |    2 +
.../dashboards/admin/defaults/workflows.py         |    3 +-
.../dashboards/admin/flavors/constants.py          |    2 +-
.../dashboards/admin/flavors/panel.py              |    1 +
.../admin/flavors/templates/flavors/index.html     |    7 -
.../dashboards/admin/flavors/urls.py               |   26 +-
.../dashboards/admin/flavors/views.py              |    1 -
.../dashboards/admin/flavors/workflows.py          |   52 +-
.../dashboards/admin/floating_ips/panel.py         |    1 +
.../dashboards/admin/floating_ips/tables.py        |    4 +-
.../floating_ips/templates/floating_ips/index.html |    7 -
.../dashboards/admin/floating_ips/views.py         |    6 +-
.../dashboards/admin/hypervisors/compute/forms.py  |    7 +-
.../dashboards/admin/hypervisors/views.py          |    3 +-
.../dashboards/admin/images/panel.py               |    2 +
.../dashboards/admin/images/tables.py              |    2 +-
.../admin/images/templates/images/index.html       |    7 -
.../dashboards/admin/images/urls.py                |    8 +-
.../dashboards/admin/images/views.py               |    6 -
openstack_dashboard/dashboards/admin/info/panel.py |    4 +
openstack_dashboard/dashboards/admin/info/tabs.py  |    2 +-
.../dashboards/admin/instances/panel.py            |    3 +-
.../dashboards/admin/instances/tables.py           |   19 +-
.../admin/instances/templates/instances/index.html |    7 -
.../dashboards/admin/instances/views.py            |   47 +-
.../dashboards/admin/metadata_defs/constants.py    |    2 +-
.../dashboards/admin/metadata_defs/panel.py        |    3 +-
.../dashboards/admin/metadata_defs/tables.py       |    2 +-
.../dashboards/admin/metadata_defs/tabs.py         |    2 +-
.../templates/metadata_defs/index.html             |    7 -
.../dashboards/admin/metering/__init__.py          |    0
.../dashboards/admin/metering/forms.py             |   65 -
.../dashboards/admin/metering/panel.py             |   24 -
.../dashboards/admin/metering/tables.py            |   88 -
.../dashboards/admin/metering/tabs.py              |  118 -
.../admin/metering/templates/metering/_daily.html  |   32 -
.../admin/metering/templates/metering/daily.html   |    7 -
.../admin/metering/templates/metering/index.html   |   11 -
.../admin/metering/templates/metering/stats.html   |  175 -
.../dashboards/admin/metering/urls.py              |   22 -
.../dashboards/admin/metering/views.py             |  171 -
.../dashboards/admin/networks/agents/views.py      |    2 +-
.../dashboards/admin/networks/forms.py             |    9 +-
.../dashboards/admin/networks/panel.py             |    1 +
.../dashboards/admin/networks/ports/forms.py       |    4 +-
.../dashboards/admin/networks/ports/views.py       |    4 +-
.../dashboards/admin/networks/subnets/workflows.py |   18 +
.../admin/networks/templates/networks/index.html   |   17 -
.../dashboards/admin/networks/views.py             |    3 +-
.../dashboards/admin/ngflavors/panel.py            |    1 +
.../dashboards/admin/overview/panel.py             |    3 +-
.../dashboards/admin/routers/panel.py              |    1 +
.../dashboards/admin/routers/ports/tabs.py         |    2 +-
.../dashboards/admin/routers/tables.py             |    3 +-
.../admin/routers/templates/routers/index.html     |    7 -
.../dashboards/admin/routers/views.py              |    2 +-
.../admin/static/dashboard/admin/admin.module.js   |   46 -
.../static/dashboard/admin/admin.module.spec.js    |   38 -
.../admin/flavors/filters/has-extras.filter.js     |   44 -
.../flavors/filters/has-extras.filter.spec.js      |   43 -
.../dashboard/admin/flavors/flavors.module.js      |   30 -
.../dashboard/admin/flavors/flavors.module.spec.js |   24 -
.../flavors/table/flavors-table.controller.js      |   87 -
.../flavors/table/flavors-table.controller.spec.js |   77 -
.../admin/flavors/table/flavors-table.html         |   63 -
.../dashboards/admin/volumes/panel.py              |    1 +
.../dashboards/admin/volumes/snapshots/tables.py   |    3 +-
.../dashboards/admin/volumes/snapshots/tabs.py     |    2 +-
.../dashboards/admin/volumes/snapshots/views.py    |   10 +-
.../volumes/snapshots/_detail_overview.html        |   37 -
.../admin/volumes/volume_types/extras/views.py     |    8 +-
.../admin/volumes/volume_types/qos_specs/views.py  |    6 +-
.../admin/volumes/volume_types/tables.py           |   20 +-
.../dashboards/admin/volumes/volume_types/views.py |   10 +-
.../dashboards/admin/volumes/volumes/tables.py     |    3 +-
.../dashboards/admin/volumes/volumes/views.py      |    8 +-
.../dashboards/identity/domains/urls.py            |   24 +-
.../dashboards/identity/domains/views.py           |   20 +-
.../dashboards/identity/groups/forms.py            |    5 +-
.../dashboards/identity/groups/tables.py           |    2 +-
.../dashboards/identity/groups/views.py            |   23 +-
.../identity/identity_providers/protocols/views.py |    1 -
.../dashboards/identity/identity_providers/tabs.py |    2 +-
.../templates/identity_providers/_register.html    |    2 +-
.../templates/identity_providers/index.html        |    7 -
.../identity/identity_providers/views.py           |    3 -
.../mappings/templates/mappings/index.html         |    7 -
.../dashboards/identity/mappings/views.py          |    3 -
.../dashboards/identity/ngusers/__init__.py        |    0
.../dashboards/identity/ngusers/panel.py           |   24 -
.../identity/ngusers/templates/ngusers/index.html  |   15 -
.../dashboards/identity/ngusers/urls.py            |   22 -
.../dashboards/identity/ngusers/views.py           |   19 -
.../dashboards/identity/projects/tables.py         |   15 +-
.../dashboards/identity/projects/views.py          |   22 +-
.../dashboards/identity/projects/workflows.py      |   10 +-
.../identity/roles/templates/roles/index.html      |    7 -
.../dashboards/identity/roles/urls.py              |   22 +-
.../dashboards/identity/roles/views.py             |   19 +-
.../identity/domains/details/details.module.js     |   54 +
.../domains/details/details.module.spec.js         |   36 +
.../dashboard/identity/domains/details/drawer.html |    5 +
.../domains/details/overview.controller.js         |   48 +
.../domains/details/overview.controller.spec.js    |   50 +
.../identity/domains/details/overview.html         |   14 +
.../dashboard/identity/domains/domains.module.js   |  102 +
.../identity/domains/domains.module.spec.js        |   24 +
.../dashboard/identity/domains/domains.service.js  |  128 +
.../identity/domains/domains.service.spec.js       |   92 +
.../static/dashboard/identity/domains/panel.html   |    4 +
.../static/dashboard/identity/identity.module.js   |    4 +-
.../dashboard/identity/identity.module.spec.js     |    2 +
.../static/dashboard/identity/roles/panel.html     |    4 +
.../dashboard/identity/roles/roles.module.js       |   84 +
.../dashboard/identity/roles/roles.module.spec.js  |   40 +
.../identity/users/details/details.module.js       |   56 +
.../dashboard/identity/users/details/drawer.html   |    7 +
.../identity/users/details/overview.controller.js  |   46 +
.../users/details/overview.controller.spec.js      |   45 +
.../dashboard/identity/users/details/overview.html |   16 +
.../static/dashboard/identity/users/panel.html     |    4 +
.../identity/users/table/table.controller.js       |   77 -
.../identity/users/table/table.controller.spec.js  |   94 -
.../dashboard/identity/users/table/table.html      |  116 -
.../dashboard/identity/users/users.module.js       |  119 +-
.../dashboard/identity/users/users.module.spec.js  |   28 +-
.../dashboard/identity/users/users.service.js      |   98 +
.../dashboard/identity/users/users.service.spec.js |  109 +
.../dashboards/identity/users/forms.py             |    2 +-
.../dashboards/identity/users/urls.py              |   31 +-
.../dashboards/identity/users/views.py             |   23 +-
.../project/access_and_security/__init__.py        |    0
.../access_and_security/api_access/__init__.py     |    0
.../access_and_security/api_access/forms.py        |   68 -
.../access_and_security/api_access/tables.py       |  111 -
.../project/access_and_security/api_access/urls.py |   33 -
.../access_and_security/api_access/views.py        |  189 -
.../access_and_security/floating_ips/__init__.py   |    0
.../access_and_security/floating_ips/forms.py      |   55 -
.../access_and_security/floating_ips/tables.py     |  223 -
.../access_and_security/floating_ips/urls.py       |   28 -
.../access_and_security/floating_ips/views.py      |   80 -
.../access_and_security/floating_ips/workflows.py  |  174 -
.../access_and_security/keypairs/__init__.py       |    0
.../project/access_and_security/keypairs/forms.py  |   84 -
.../project/access_and_security/keypairs/tables.py |  108 -
.../project/access_and_security/keypairs/urls.py   |   36 -
.../project/access_and_security/keypairs/views.py  |  131 -
.../project/access_and_security/panel.py           |   23 -
.../security_groups/__init__.py                    |    0
.../access_and_security/security_groups/forms.py   |  423 -
.../access_and_security/security_groups/tables.py  |  286 -
.../access_and_security/security_groups/urls.py    |   36 -
.../access_and_security/security_groups/views.py   |  163 -
.../dashboards/project/access_and_security/tabs.py |  150 -
.../api_access/_credentials.html                   |   69 -
.../api_access/_recreate_credentials.html          |    6 -
.../api_access/credentials.html                    |    7 -
.../api_access/ec2rc.sh.template                   |   15 -
.../api_access/openrc.sh.template                  |   43 -
.../api_access/openrc_v2.sh.template               |   43 -
.../api_access/recreate_credentials.html           |    7 -
.../floating_ips/_allocate.html                    |   36 -
.../access_and_security/floating_ips/allocate.html |    7 -
.../templates/access_and_security/index.html       |   11 -
.../access_and_security/keypairs/_create.html      |    8 -
.../access_and_security/keypairs/_import.html      |   13 -
.../access_and_security/keypairs/create.html       |    8 -
.../access_and_security/keypairs/detail.html       |   31 -
.../access_and_security/keypairs/download.html     |   19 -
.../access_and_security/keypairs/import.html       |    7 -
.../security_groups/_add_rule.html                 |   10 -
.../security_groups/_create.html                   |    7 -
.../security_groups/_update.html                   |    7 -
.../security_groups/add_rule.html                  |    8 -
.../security_groups/create.html                    |    7 -
.../security_groups/detail.html                    |   16 -
.../security_groups/update.html                    |    7 -
.../dashboards/project/access_and_security/urls.py |   40 -
.../project/access_and_security/views.py           |   35 -
.../dashboards/project/api_access/__init__.py      |    0
.../dashboards/project/api_access/forms.py         |   68 +
.../dashboards/project/api_access/panel.py         |   21 +
.../dashboards/project/api_access/tables.py        |  110 +
.../templates/api_access/_credentials.html         |   63 +
.../api_access/_recreate_credentials.html          |    6 +
.../templates/api_access/credentials.html          |    5 +
.../templates/api_access/ec2rc.sh.template         |   15 +
.../templates/api_access/openrc.sh.template        |   43 +
.../templates/api_access/openrc_v2.sh.template     |   43 +
.../templates/api_access/recreate_credentials.html |    5 +
.../dashboards/project/api_access/urls.py          |   31 +
.../dashboards/project/api_access/views.py         |  208 +
.../dashboards/project/containers/browsers.py      |   31 -
.../dashboards/project/containers/forms.py         |  244 -
.../dashboards/project/containers/tables.py        |  432 -
.../templates/containers/_container_detail.html    |   29 -
.../templates/containers/_container_loader.html    |    5 -
.../templates/containers/_container_metadata.html  |   12 -
.../containers/templates/containers/_copy.html     |   24 -
.../containers/templates/containers/_create.html   |   20 -
.../containers/_create_pseudo_folder.html          |   26 -
.../templates/containers/_object_detail.html       |   25 -
.../containers/templates/containers/_update.html   |   28 -
.../containers/templates/containers/_upload.html   |   29 -
.../templates/containers/container_detail.html     |   11 -
.../containers/templates/containers/copy.html      |    7 -
.../containers/templates/containers/create.html    |    7 -
.../templates/containers/create_pseudo_folder.html |    7 -
.../containers/templates/containers/index.html     |   24 -
.../templates/containers/object_detail.html        |   11 -
.../containers/templates/containers/update.html    |    7 -
.../containers/templates/containers/upload.html    |    7 -
.../dashboards/project/containers/urls.py          |   60 +-
.../dashboards/project/containers/utils.py         |   14 +
.../dashboards/project/containers/views.py         |  319 +-
.../templates/firewalls/_update_routers.html       |    2 +-
.../templates/firewalls/_update_rules.html         |    2 +-
.../dashboards/project/firewalls/views.py          |    7 -
.../dashboards/project/floating_ips/__init__.py    |    0
.../dashboards/project/floating_ips/forms.py       |   55 +
.../dashboards/project/floating_ips/panel.py       |   27 +
.../dashboards/project/floating_ips/tables.py      |  223 +
.../templates/floating_ips/_allocate.html          |   37 +
.../templates/floating_ips/allocate.html           |    6 +
.../dashboards/project/floating_ips/urls.py        |   27 +
.../dashboards/project/floating_ips/views.py       |  130 +
.../dashboards/project/floating_ips/workflows.py   |  174 +
.../dashboards/project/images/images/forms.py      |    9 +-
.../dashboards/project/images/images/urls.py       |    7 +-
.../dashboards/project/images/images/views.py      |    2 -
.../dashboards/project/images/panel.py             |    1 +
.../dashboards/project/images/snapshots/views.py   |   19 +-
.../project/images/templates/images/index.html     |    7 -
.../dashboards/project/images/urls.py              |    6 +-
.../dashboards/project/images/utils.py             |    7 +-
.../dashboards/project/images/views.py             |    6 -
.../dashboards/project/instances/audit_tables.py   |    9 +-
.../dashboards/project/instances/console.py        |    3 +-
.../dashboards/project/instances/tables.py         |   40 +-
.../dashboards/project/instances/tabs.py           |    2 +-
.../templates/instances/_detail_console.html       |    2 +-
.../templates/instances/_detail_overview.html      |    2 +-
.../templates/instances/_instance_ips.html         |    4 +-
.../instances/templates/instances/index.html       |    7 -
.../templates/instances/serial_console.html        |    4 +-
.../dashboards/project/instances/views.py          |   62 +-
.../project/instances/workflows/create_instance.py |   15 +-
.../project/instances/workflows/resize_instance.py |    8 +-
.../dashboards/project/key_pairs/__init__.py       |    0
.../dashboards/project/key_pairs/forms.py          |   84 +
.../dashboards/project/key_pairs/panel.py          |   25 +
.../dashboards/project/key_pairs/tables.py         |  107 +
.../key_pairs/templates/key_pairs/_create.html     |    7 +
.../key_pairs/templates/key_pairs/_import.html     |   12 +
.../key_pairs/templates/key_pairs/create.html      |    8 +
.../key_pairs/templates/key_pairs/detail.html      |   31 +
.../key_pairs/templates/key_pairs/download.html    |   17 +
.../key_pairs/templates/key_pairs/import.html      |    7 +
.../dashboards/project/key_pairs/urls.py           |   34 +
.../dashboards/project/key_pairs/views.py          |  139 +
.../dashboards/project/loadbalancers/__init__.py   |    0
.../dashboards/project/loadbalancers/forms.py      |  281 -
.../dashboards/project/loadbalancers/panel.py      |   50 -
.../dashboards/project/loadbalancers/tables.py     |  566 --
.../dashboards/project/loadbalancers/tabs.py       |  151 -
.../templates/loadbalancers/_create_pool_help.html |   27 -
.../templates/loadbalancers/_create_vip_help.html  |   16 -
.../templates/loadbalancers/_member_details.html   |   30 -
.../templates/loadbalancers/_members_tab.html      |    5 -
.../templates/loadbalancers/_monitor_details.html  |   51 -
.../templates/loadbalancers/_monitors_tab.html     |    5 -
.../templates/loadbalancers/_pool_details.html     |   74 -
.../loadbalancers/_pool_table_subnet_cell.html     |    8 -
.../loadbalancers/_pool_table_vip_cell.html        |    9 -
.../templates/loadbalancers/_pools_tab.html        |    5 -
.../templates/loadbalancers/_updatemember.html     |    7 -
.../templates/loadbalancers/_updatemonitor.html    |    7 -
.../templates/loadbalancers/_updatepool.html       |    7 -
.../templates/loadbalancers/_updatevip.html        |    7 -
.../templates/loadbalancers/_vip_details.html      |   67 -
.../templates/loadbalancers/details_tabs.html      |   11 -
.../templates/loadbalancers/updatemember.html      |    7 -
.../templates/loadbalancers/updatemonitor.html     |    7 -
.../templates/loadbalancers/updatepool.html        |    7 -
.../templates/loadbalancers/updatevip.html         |    7 -
.../dashboards/project/loadbalancers/urls.py       |   50 -
.../dashboards/project/loadbalancers/utils.py      |   31 -
.../dashboards/project/loadbalancers/views.py      |  421 -
.../dashboards/project/loadbalancers/workflows.py  |  745 --
.../client_side/_balloon_port.html                 |    7 +-
.../dashboards/project/network_topology/views.py   |   35 +-
.../dashboards/project/networks/forms.py           |    9 +-
.../extensions/allowed_address_pairs/views.py      |    3 +-
.../dashboards/project/networks/ports/forms.py     |    4 +-
.../dashboards/project/networks/ports/tabs.py      |    2 +-
.../dashboards/project/networks/ports/views.py     |    4 +-
.../dashboards/project/networks/subnets/utils.py   |    2 +
.../dashboards/project/networks/subnets/views.py   |    3 +-
.../project/networks/subnets/workflows.py          |    1 -
.../dashboards/project/networks/tabs.py            |    2 +-
.../templates/networks/_detail_overview.html       |    2 -
.../project/networks/templates/networks/index.html |    7 -
.../templates/networks/ports/_detail_overview.html |    2 +-
.../networks/subnets/_detail_overview.html         |   14 +-
.../dashboards/project/networks/views.py           |    2 -
.../dashboards/project/networks/workflows.py       |   24 +-
.../dashboards/project/ngdetails/urls.py           |   22 -
.../dashboards/project/ngdetails/views.py          |   19 -
.../dashboards/project/ngvolumes/urls.py           |    7 +-
.../dashboards/project/ngvolumes/views.py          |   19 -
.../dashboards/project/routers/tables.py           |    2 +-
.../dashboards/project/routers/tabs.py             |    2 +-
.../project/routers/templates/routers/index.html   |    7 -
.../dashboards/project/routers/views.py            |    3 -
.../dashboards/project/security_groups/__init__.py |    0
.../dashboards/project/security_groups/forms.py    |  432 +
.../dashboards/project/security_groups/panel.py    |   21 +
.../dashboards/project/security_groups/tables.py   |  285 +
.../templates/security_groups/_add_rule.html       |   10 +
.../templates/security_groups/_create.html         |    7 +
.../templates/security_groups/_update.html         |    7 +
.../templates/security_groups/add_rule.html        |    6 +
.../templates/security_groups/create.html          |    5 +
.../templates/security_groups/detail.html          |   13 +
.../templates/security_groups/update.html          |    5 +
.../dashboards/project/security_groups/urls.py     |   34 +
.../dashboards/project/security_groups/views.py    |  178 +
.../dashboards/project/stacks/forms.py             |    6 +-
.../dashboards/project/stacks/mappings.py          |    6 -
.../project/stacks/resource_types/tables.py        |    7 +-
.../templates/stacks.resource_types/index.html     |    7 -
.../project/stacks/resource_types/views.py         |    7 +-
.../dashboards/project/stacks/tables.py            |   10 +-
.../project/stacks/template_versions/tables.py     |    1 +
.../project/stacks/templates/stacks/index.html     |    7 -
.../dashboards/project/stacks/views.py             |   11 +-
.../dashboard/project/containers/_containers.scss  |    5 +-
.../project/containers/containers-model.service.js |    4 +-
.../containers/containers-model.service.spec.js    |    2 +-
.../project/containers/containers.controller.js    |  100 +-
.../containers/containers.controller.spec.js       |   71 +-
.../dashboard/project/containers/containers.html   |   34 +-
.../project/containers/containers.module.js        |   48 +-
.../project/containers/containers.module.spec.js   |    9 +-
.../create-container-modal.controller.js           |   27 -
.../create-container-modal.controller.spec.js      |   40 -
.../project/containers/create-container-modal.html |   73 -
.../project/containers/create-container.help.html  |   11 +
.../project/containers/create-folder-modal.html    |    2 +-
.../project/containers/delete-objects-modal.html   |    4 +-
.../containers/delete-objects.controller.js        |    8 +-
.../containers/delete-objects.controller.spec.js   |   16 +-
.../project/containers/file-change-directive.js    |    4 +-
.../containers/file-change-directive.spec.js       |    2 +-
.../containers/objects-batch-actions.service.js    |   74 +-
.../objects-batch-actions.service.spec.js          |   46 +-
.../containers/objects-row-actions.service.js      |   78 +-
.../containers/objects-row-actions.service.spec.js |   36 +-
.../project/containers/objects.controller.js       |   40 +-
.../dashboard/project/containers/objects.html      |    4 +-
.../workflow/launch-instance/details/details.html  |    2 +-
.../workflow/launch-instance/flavor/flavor.html    |    4 +-
.../keypair/create-keypair.controller.js           |   14 +-
.../keypair/create-keypair.controller.spec.js      |    2 +-
.../keypair/import-keypair.controller.js           |   11 +-
.../keypair/import-keypair.controller.spec.js      |    2 +-
.../launch-instance/keypair/keypair.controller.js  |   14 +-
.../keypair/keypair.controller.spec.js             |   22 +-
.../launch-instance-modal.service.js               |    6 +-
.../launch-instance-modal.service.spec.js          |    4 +-
.../launch-instance-model.service.js               |   32 +-
.../launch-instance-model.service.spec.js          |   16 +-
.../workflow/launch-instance/network/network.html  |    4 +-
.../launch-instance/networkports/ports.html        |    4 +-
.../security-groups/security-groups.html           |    4 +-
.../server-groups/server-groups.html               |    4 +-
.../launch-instance/source/source.controller.js    |   35 +-
.../source/source.controller.spec.js               |   39 +-
.../launch-instance/source/source.help.html        |    4 +-
.../workflow/launch-instance/source/source.html    |   17 +-
.../dashboards/project/volumes/backups/forms.py    |    7 +-
.../dashboards/project/volumes/backups/views.py    |    6 +-
.../project/volumes/cg_snapshots/views.py          |    3 +-
.../dashboards/project/volumes/cgroups/views.py    |   19 +-
.../dashboards/project/volumes/panel.py            |    2 +
.../dashboards/project/volumes/snapshots/tables.py |   21 +-
.../dashboards/project/volumes/snapshots/views.py  |    4 +-
.../volumes/snapshots/_detail_overview.html        |   15 +-
.../templates/volumes/volumes/_extend_limits.html  |    5 +-
.../volumes/templates/volumes/volumes/_limits.html |   10 +-
.../dashboards/project/volumes/volumes/forms.py    |   25 +-
.../dashboards/project/volumes/volumes/tables.py   |   28 +-
.../dashboards/project/volumes/volumes/views.py    |   16 +-
.../dashboards/project/vpn/views.py                |    4 -
.../dashboards/settings/password/forms.py          |    4 +
.../dashboards/settings/user/forms.py              |   39 +-
.../dashboards/settings/user/views.py              |   10 +-
.../enabled/_1060_project_access_panel.py          |   10 -
.../enabled/_1080_project_key_pairs_panel.py       |    5 +
.../enabled/_1090_project_api_access_panel.py      |    6 +
.../enabled/_1450_project_loadbalancers_panel.py   |   10 -
.../enabled/_1480_security_groups_panel.py         |    6 +
.../enabled/_1490_project_floating_ips_panel.py    |    6 +
.../enabled/_1920_project_containers_panel.py      |    7 -
openstack_dashboard/enabled/_2000_admin.py         |    1 -
.../enabled/_2030_admin_metering_panel.py          |    9 -
.../enabled/_2080_admin_flavors_panel.py           |   15 +
.../enabled/_2081_admin_flavors_panel.py           |   31 -
.../enabled/_3031_identity_users_panel.py          |   30 -
openstack_dashboard/enabled/_9001_developer.py     |   36 -
openstack_dashboard/enabled/_9010_preview.py       |   21 -
.../enabled/_9020_resource_browser.py              |   20 -
openstack_dashboard/karma.conf.js                  |   19 +-
.../_9030_profiler_settings.py.example             |    6 +
.../local/local_settings.py.example                |   31 +-
.../locale/as/LC_MESSAGES/django.po                | 1117 +--
.../locale/bn_IN/LC_MESSAGES/django.po             | 1104 +--
.../locale/brx/LC_MESSAGES/django.po               | 1120 +--
.../locale/cs/LC_MESSAGES/django.po                | 1944 +---
.../locale/cs/LC_MESSAGES/djangojs.po              |  476 +-
.../locale/de/LC_MESSAGES/django.po                | 2002 +---
.../locale/de/LC_MESSAGES/djangojs.po              |  665 +-
.../locale/en_AU/LC_MESSAGES/django.po             | 2388 ++---
.../locale/en_AU/LC_MESSAGES/djangojs.po           |  856 +-
.../locale/en_GB/LC_MESSAGES/django.po             | 1547 +--
.../locale/en_GB/LC_MESSAGES/djangojs.po           |   81 +-
.../locale/es/LC_MESSAGES/django.po                | 1538 +--
.../locale/es/LC_MESSAGES/djangojs.po              |  182 +-
.../locale/fr/LC_MESSAGES/django.po                | 2820 +++---
.../locale/fr/LC_MESSAGES/djangojs.po              |  653 +-
.../locale/gu/LC_MESSAGES/django.po                | 1105 +--
.../locale/hi/LC_MESSAGES/django.po                |  990 +-
.../locale/id/LC_MESSAGES/django.po                | 9798 ++++++++++++++++++++
.../locale/id/LC_MESSAGES/djangojs.po              | 3043 ++++++
.../locale/it/LC_MESSAGES/django.po                | 1523 +--
.../locale/it/LC_MESSAGES/djangojs.po              |   53 +-
.../locale/ja/LC_MESSAGES/django.po                | 2293 ++---
.../locale/ja/LC_MESSAGES/djangojs.po              |  715 +-
.../locale/kn/LC_MESSAGES/django.po                | 1158 +--
.../locale/ko_KR/LC_MESSAGES/django.po             | 2504 ++---
.../locale/ko_KR/LC_MESSAGES/djangojs.po           |  337 +-
.../locale/kok/LC_MESSAGES/django.po               | 1103 +--
.../locale/ks/LC_MESSAGES/django.po                | 1111 +--
.../locale/mai/LC_MESSAGES/django.po               | 1110 +--
.../locale/mni/LC_MESSAGES/django.po               | 1111 +--
.../locale/mr/LC_MESSAGES/django.po                | 1117 +--
.../locale/ne/LC_MESSAGES/django.po                | 1104 +--
.../locale/nl_NL/LC_MESSAGES/django.po             | 1000 +-
.../locale/pa_IN/LC_MESSAGES/django.po             | 1204 +--
.../locale/pl_PL/LC_MESSAGES/django.po             | 1750 +---
.../locale/pl_PL/LC_MESSAGES/djangojs.po           |  797 --
.../locale/pt_BR/LC_MESSAGES/django.po             | 1685 +---
.../locale/pt_BR/LC_MESSAGES/djangojs.po           |  217 +-
.../locale/ru/LC_MESSAGES/django.po                | 2351 ++---
.../locale/ru/LC_MESSAGES/djangojs.po              |  719 +-
.../locale/sr/LC_MESSAGES/django.po                | 1048 +--
.../locale/ta/LC_MESSAGES/django.po                | 1126 +--
.../locale/tr_TR/LC_MESSAGES/django.po             | 1758 +---
.../locale/tr_TR/LC_MESSAGES/djangojs.po           |  983 --
.../locale/ur/LC_MESSAGES/django.po                | 1119 +--
.../locale/zh_CN/LC_MESSAGES/django.po             | 2759 ++----
.../locale/zh_CN/LC_MESSAGES/djangojs.po           | 1489 ++-
.../locale/zh_TW/LC_MESSAGES/django.po             | 1725 +---
.../locale/zh_TW/LC_MESSAGES/djangojs.po           |  128 +-
.../management/commands/apache_vhost.conf.template |    2 +-
.../management/commands/extract_messages.py        |   57 +
.../management/commands/make_web_conf.py           |   13 +-
.../management/commands/update_catalog.py          |  122 +
openstack_dashboard/policy.py                      |    4 +-
openstack_dashboard/settings.py                    |   89 +-
openstack_dashboard/static/app/app.module.js       |    4 +
openstack_dashboard/static/app/core/core.module.js |    1 +
.../static/app/core/flavors/flavors.module.js      |  157 +
.../static/app/core/flavors/flavors.service.js     |   37 +
.../app/core/flavors/flavors.service.spec.js       |   41 +
.../static/app/core/flavors/panel.html             |    3 +
.../static/app/core/flavors/summary.html           |   19 +
.../core/images/actions/create-volume.service.js   |   30 +-
.../images/actions/create-volume.service.spec.js   |   37 +-
.../images/actions/create.action.service.spec.js   |    5 +-
.../app/core/images/details/overview.controller.js |    3 +-
.../images/details/overview.controller.spec.js     |   30 +-
.../static/app/core/images/images.module.js        |   10 +-
.../static/app/core/images/images.module.spec.js   |    2 +-
.../static/app/core/images/images.service.js       |    1 +
.../images/steps/create-image/create-image.html    |   21 +-
.../create-volume/create-volume.controller.js      |   12 +-
.../create-volume/create-volume.controller.spec.js |   69 +-
.../core/images/steps/edit-image/edit-image.html   |   12 +-
.../update-metadata/update-metadata.help.html      |    1 -
.../steps/update-metadata/update-metadata.html     |    1 -
.../static/app/core/metadata/metadata.service.js   |   20 +-
.../app/core/metadata/metadata.service.spec.js     |   26 +
.../app/core/metadata/modal/modal.controller.js    |   12 +-
.../core/metadata/modal/modal.controller.spec.js   |    2 +-
.../static/app/core/metadata/modal/modal.html      |    3 +
.../app/core/metadata/modal/modal.service.js       |    6 +-
.../app/core/metadata/modal/modal.service.spec.js  |   12 +-
.../core/openstack-service-api/cinder.service.js   |   65 +-
.../openstack-service-api/cinder.service.spec.js   |   57 +
.../core/openstack-service-api/keystone.service.js |   10 +-
.../openstack-service-api/keystone.service.spec.js |    6 +
.../app/core/openstack-service-api/nova.service.js |   10 +-
.../openstack-service-api/nova.service.spec.js     |   11 +-
.../core/openstack-service-api/policy.service.js   |    2 +-
.../core/openstack-service-api/settings.service.js |    4 +-
.../openstack-service-api/settings.service.spec.js |   10 +-
.../core/openstack-service-api/swift.service.js    |   15 +-
.../static/app/resources/resources.module.js       |   14 +-
.../static/dashboard/img/favicon.ico               |  Bin 1150 -> 10174 bytes
.../static/dashboard/img/logo-splash.png           |  Bin 3187 -> 0 bytes
.../static/dashboard/img/logo-splash.svg           |  377 +-
openstack_dashboard/static/dashboard/img/logo.png  |  Bin 2405 -> 0 bytes
openstack_dashboard/static/dashboard/img/logo.svg  |  355 +-
.../static/dashboard/scss/_layout.scss             |   14 +-
.../static/dashboard/scss/components/_forms.scss   |    7 +
.../static/dashboard/scss/components/_login.scss   |    6 +-
.../static/dashboard/scss/components/_navbar.scss  |    2 +-
.../static/dashboard/scss/components/_sidebar.scss |  139 +-
.../static/dashboard/scss/components/_tab.scss     |    3 +
.../static/dashboard/scss/horizon.scss             |    1 +
openstack_dashboard/static/js/.eslintrc            |   34 +
.../static/js/angular/directives/serialConsole.js  |  107 +
openstack_dashboard/static/js/horizon.firewalls.js |   28 +
.../static/js/horizon.flatnetworktopology.js       |  634 ++
openstack_dashboard/static/js/horizon.instances.js |  195 +
openstack_dashboard/static/js/horizon.metering.js  |   46 +
.../static/js/horizon.networktopology.js           | 1091 +++
.../static/js/horizon.networktopologycommon.js     |  163 +
openstack_dashboard/static/js/horizon.quota.js     |  471 +
openstack_dashboard/static/js/horizon.volumes.js   |   95 +
openstack_dashboard/templates/500.html             |    2 +-
openstack_dashboard/templates/angular.html         |    2 +-
openstack_dashboard/templates/base.html            |    1 +
openstack_dashboard/templates/header/_brand.html   |    2 +-
openstack_dashboard/templates/header/_header.html  |   14 +-
.../header/_keystone_provider_selection.html       |   11 +
.../templates/header/_user_menu.html               |   12 +
.../templates/horizon/_scripts.html                |   29 +-
.../templatetags/context_selection.py              |    2 +
openstack_dashboard/test/error_pages_urls.py       |   12 +
openstack_dashboard/test/helpers.py                |   14 +-
.../pages/admin/system/flavorspage.py              |   11 +
.../pages/project/compute/instancespage.py         |    6 +-
.../project/compute/volumes/volumesnapshotspage.py |    2 +-
.../pages/project/network/routerspage.py           |    2 +-
openstack_dashboard/test/settings.py               |   30 +-
.../test/test_data/ceilometer_data.py              |  331 -
openstack_dashboard/test/test_data/exceptions.py   |    4 -
openstack_dashboard/test/test_data/glance_data.py  |    5 +-
openstack_dashboard/test/test_data/heat_data.py    |    6 -
.../test/test_data/keystone_data.py                |   23 +-
openstack_dashboard/test/test_data/neutron_data.py |  225 +-
openstack_dashboard/test/test_data/nova_data.py    |   15 +-
openstack_dashboard/test/test_data/utils.py        |    2 -
.../static/plugin_panel/plugin_module.js           |   16 +-
.../themes/material/static/bootstrap/_styles.scss  |    2 +-
.../material/static/bootstrap/_variables.scss      |    4 +-
.../themes/material/static/horizon/_icons.scss     |    2 +
.../static/horizon/components/_sidebar.scss        |    4 +
.../themes/material/templates/header/_header.html  |    3 +
.../material/templates/horizon/_sidebar.html       |    6 +-
openstack_dashboard/usage/quotas.py                |   45 +-
openstack_dashboard/usage/tables.py                |    3 +-
openstack_dashboard/utils/identity.py              |   28 +
openstack_dashboard/utils/metering.py              |  249 -
openstack_dashboard/utils/settings.py              |    7 +-
openstack_dashboard/views.py                       |   18 +-
openstack_dashboard/wsgi/django.wsgi               |    2 +-
package.json                                       |    2 +-
releasenotes/notes/bp-dj110-438f26c21f283c46.yaml  |   10 +
.../notes/bp-k2k-horizon-9577253d626337c1.yaml     |   11 +
.../notes/bp/enhance-tox-26f73a048b88df2f.yaml     |   11 +
...anise-access-and-security-ea7780aa9e7b83e7.yaml |    8 +
.../notes/bug-1585682-abd815f290e494d3.yaml        |    7 +-
.../notes/bug-1618235-59865fa0e5991e63.yaml        |    8 +
.../notes/bug-1635505-3807fd0151702a5f.yaml        |    7 +
.../notes/bug-1640049-1195315b5f591ab0.yaml        |   10 +
.../notes/bug/1637490-c29444e4eb458087.yaml        |    5 +
.../drop-LBaaS-v1-dashboard-d767b0bde5274af5.yaml  |    9 +
...ter-first-identity-panels-139c4a5b7a696707.yaml |    5 +
...keystone-endpoint-message-03129e37a6377715.yaml |    9 +
.../flavor-panel-switch-6b5cd5f0964f4ba3.yaml      |   13 +
releasenotes/notes/glance-v2-ba86ba34611f95ce.yaml |    3 +
...bal-class-name-convention-71ff68913c39b800.yaml |    4 +-
.../launch-instance-defaults-c6ab65b7ab822162.yaml |    5 +-
...e-developer-enabled-files-b1ad2265cd79b11e.yaml |    9 +
...er-at-developer-dashboard-da1b1556e30aa858.yaml |   22 +
.../provider-net-config-713f0672c8e49888.yaml      |    2 +-
...remove-ceilometer-support-376d38802a3ef833.yaml |    5 +
...emove-deprecated-swift-ui-1165b60bab5771d6.yaml |    8 +
...tting-OVERVIEW_DAYS_RANGE-9b87e8b077952a32.yaml |    5 +-
...se-toast-instead-of-alert-ef2f7dec2bd1121a.yaml |   15 +
.../notes/xstatic-updates-c3ff5e2b4750ae96.yaml    |   14 +
releasenotes/source/conf.py                        |    3 +
releasenotes/source/essex.rst                      |  154 +
releasenotes/source/folsom.rst                     |  159 +
releasenotes/source/grizzly.rst                    |  274 +
releasenotes/source/havana.rst                     |  254 +
releasenotes/source/icehouse.rst                   |  192 +
releasenotes/source/index.rst                      |    8 +
releasenotes/source/juno.rst                       |  181 +
releasenotes/source/kilo.rst                       |   90 +
.../source/locale/id/LC_MESSAGES/releasenotes.po   | 1614 ----
.../source/locale/ja/LC_MESSAGES/releasenotes.po   | 1166 ---
releasenotes/source/newton.rst                     |    6 +
requirements.txt                                   |   55 +-
test-requirements.txt                              |   14 +-
test-shim.js                                       |   14 +
tools/gate/integration/post_test_hook.sh           |    6 +-
tools/install_venv.py                              |    4 +-
tools/install_venv_common.py                       |   13 +-
tools/pseudo.py                                    |    4 +
tox.ini                                            |  147 +-
949 files changed, 45179 insertions(+), 74101 deletions(-)


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

diff --git a/requirements.txt b/requirements.txt
index 2d5a929..7b2cce8 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10 +10 @@
-pbr>=1.6 # Apache-2.0
+pbr>=1.8 # Apache-2.0
@@ -17 +17 @@ django-compressor>=2.0 # MIT
-django-openstack-auth>=2.4.0 # Apache-2.0
+django-openstack-auth>=3.1.0 # Apache-2.0
@@ -22 +22 @@ oslo.concurrency>=3.8.0 # Apache-2.0
-oslo.config>=3.14.0 # Apache-2.0
+oslo.config!=3.18.0,>=3.14.0 # Apache-2.0
@@ -24 +24 @@ oslo.i18n>=2.1.0 # Apache-2.0
-oslo.policy>=1.9.0 # Apache-2.0
+oslo.policy>=1.17.0 # Apache-2.0
@@ -26 +26,3 @@ oslo.serialization>=1.10.0 # Apache-2.0
-oslo.utils>=3.16.0 # Apache-2.0
+oslo.utils>=3.18.0 # Apache-2.0
+osprofiler>=1.4.0 # Apache-2.0
+pymongo!=3.1,>=3.0.2 # Apache-2.0
@@ -28 +29,0 @@ pyScss!=1.3.5,>=1.3.4 # MIT License
-python-ceilometerclient>=2.5.0 # Apache-2.0
@@ -30,3 +31,3 @@ python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
-python-glanceclient!=2.4.0,>=2.3.0 # Apache-2.0
-python-heatclient>=1.4.0 # Apache-2.0
-python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0
+python-glanceclient>=2.5.0 # Apache-2.0
+python-heatclient>=1.6.1 # Apache-2.0
+python-keystoneclient>=3.8.0 # Apache-2.0
@@ -34,2 +35,2 @@ python-neutronclient>=5.1.0 # Apache-2.0
-python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0
-python-swiftclient>=2.2.0 # Apache-2.0
+python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
+python-swiftclient>=3.2.0 # Apache-2.0
@@ -37 +38 @@ pytz>=2013.6 # MIT
-PyYAML>=3.1.0 # MIT
+PyYAML>=3.10.0 # MIT
@@ -40,2 +41,2 @@ XStatic>=1.0.0 # MIT License
-XStatic-Angular>=1.3.7 # MIT License
-XStatic-Angular-Bootstrap>=0.11.0.2 # MIT License
+XStatic-Angular>=1.5.8.0 # MIT License
+XStatic-Angular-Bootstrap>=2.2.0.0 # MIT License
@@ -43 +44 @@ XStatic-Angular-FileUpload>=12.0.4.0 # MIT License
-XStatic-Angular-Gettext>=2.1.0.2 # MIT License
+XStatic-Angular-Gettext>=2.3.8.0 # MIT License
@@ -47,3 +48,3 @@ XStatic-Bootstrap-Datepicker>=1.3.1.0 # Apache 2.0 License
-XStatic-Bootstrap-SCSS>=3 # Apache 2.0 License
-XStatic-bootswatch>=3.3.5.3 # MIT License
-XStatic-D3>=3.1.6.2 # BSD License (3 clause)
+XStatic-Bootstrap-SCSS>=3.3.7.1 # Apache 2.0 License
+XStatic-bootswatch>=3.3.7.0 # MIT License
+XStatic-D3>=3.5.17.0 # BSD License (3 clause)
@@ -51,3 +52,3 @@ XStatic-Hogan>=2.0.0.2 # Apache 2.0 License
-XStatic-Font-Awesome>=4.3.0 # SIL OFL 1.1 License, MIT License
-XStatic-Jasmine>=2.1.2.0 # MIT License
-XStatic-jQuery>=1.7.2 # MIT License
+XStatic-Font-Awesome>=4.7.0 # SIL OFL 1.1 License, MIT License
+XStatic-Jasmine>=2.4.1.1 # MIT License
+XStatic-jQuery>=1.8.2.1 # MIT License
@@ -57,2 +58,2 @@ XStatic-JQuery.TableSorter>=2.14.5.1 # MIT License
-XStatic-jquery-ui>=1.10.1 # MIT License
-XStatic-JSEncrypt>=2.0.0.2 # MIT License
+XStatic-jquery-ui>=1.10.4.1 # MIT License
+XStatic-JSEncrypt>=2.3.1.1 # MIT License
@@ -61,3 +62,3 @@ XStatic-objectpath>=1.2.1.0 # MIT
-XStatic-Rickshaw>=1.5.0 # BSD License (prior)
-XStatic-roboto-fontface>=0.4.3.2 # Apache 2.0 License
-XStatic-smart-table!=1.4.13.0,>=1.4.5.3 # MIT License
+XStatic-Rickshaw>=1.5.0.0 # BSD License (prior)
+XStatic-roboto-fontface>=0.5.0.0 # Apache 2.0 License
+XStatic-smart-table>=1.4.13.2 # MIT License
@@ -65 +66 @@ XStatic-Spin>=1.2.5.2 # MIT License
-XStatic-term.js>=0.0.4 # MIT License
+XStatic-term.js>=0.0.7.0 # MIT License
diff --git a/test-requirements.txt b/test-requirements.txt
index 2096135..79db03b 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -12 +12 @@ hacking<0.11,>=0.10.0
-coverage>=3.6 # Apache-2.0
+coverage>=4.0 # Apache-2.0
@@ -15,2 +15,2 @@ mock>=2.0 # BSD
-mox3>=0.7.0 # Apache-2.0
-nodeenv>=0.9.4 # BSD License  # BSD
+mox3!=0.19.0,>=0.7.0 # Apache-2.0
+nodeenv>=0.9.4 # BSD
@@ -22,3 +22,3 @@ openstack.nose-plugin>=0.7 # Apache-2.0
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-reno>=1.8.0 # Apache2
-requests>=2.10.0 # Apache-2.0
+oslosphinx>=4.7.0 # Apache-2.0
+reno>=1.8.0 # Apache-2.0
+requests!=2.12.2,>=2.10.0 # Apache-2.0
@@ -26 +26 @@ selenium>=2.50.1 # Apache-2.0
-sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
+sphinx!=1.3b1,<1.4,>=1.2.1 # BSD





More information about the Release-announce mailing list