Set default token provider to UUID

This changes the default token provider to UUID, which affords a much
better deployer experience (no external dependencies and no additional
setup complexity) for deployers. It also provides a better end-user
experience (smaller, more manageable tokens) and appears to be the more
popular deployment option today, despite the current default to PKI.

DocImpact
Closes-Bug: 1350000

Change-Id: I7fb2b191cce7a9762c33fee09e7e8d48a71a297b
Remove trailing space in tox.ini

Change-Id: Ic523b92861ee1264b29cd12ece3fe12c177eed3f
Redirect stdout and stderr when using subprocess

The standard output and standard error streams where not captured
and logged in any meaningful way. This change captures those
streams and logs them in debug mode and when an exception is raised.

Closes-Bug: #1183526
Co-Authored-By: David Stanek <dstanek@dstanek.com>
Change-Id: I37fc99e0f857d21ddd02b15234a42fec5810bc03
Cleanup superfluous string comprehension and coersion

Remove the superfluous string comprehension and coersion to string
type in a join within the keystone.notifications module. The elements
in the namedtuple are already string types.

Change-Id: I107102fabc2f6671e10bcf1b5db40529fdb19d69
JSON Home data is required

For the initial implementation, the JSON Home data was optional. Now
that JSON Home is implemented, JSON Home data is required.

bp json-home

Change-Id: I5af70401fba892166cd107264e9d5eafe6bcbd03
Do not load auth plugins by class in tests

Remove the need for loading auth plugins by class in test cases as
loading auth plugins by class has been deprecated.

Tests that explicitly test loading by class name still exist.

Change-Id: I50a66746ca65a5cfbfadb653bfd9493c415017d5
bp: deprecated-as-of-juno
Test cleanup: do not leak FDs during test runs

Avoid leaking file descriptors during test runs. Instead use a secure
tempfile fixture that guarantees the file descriptor from
tempfile.mkstemp is closed and that performs the appropriate cleanup
on the tempfile name in the cleanup phase.

Change-Id: I7e1ddd3122d72d8850794df9467f7b6c0608ac2d
Mark the trust kvs backend deprecated, for removal in Kilo

Although the kvs.Base was marked as deprecated, the individual
backends were not.  This marks the kvs trust backend.

Partially-implements: bp deprecated-as-of-juno

Change-Id: I8b9b08ff7eefa6ad00db791c7077ddca5853ac6b
Adds tests that show how update with validation works

Some production code was changed to correctly validate. A function to
convert property types to nullable property types was added. The
description property schema was altered to not be nullable by default.

bp: api-validation
Change-Id: I1172271b80b4cc4f766403429eb88e304d251d3c
Implement validation on Assignment V3 API

Use JSONSchema to validate CRUD operations on V3 Assignment resources.
This includes wrapping the create and update methods for Domains,
Projects, and Roles.

bp: api-validation
Change-Id: Ia7980cb78c319effd36be0036f4c9b75e9430737
Add string id type validation

This will allow us more flexibility when validating a string
representing an ID. Previously we were just checking that the ID was in
fact a string. This change introduces a new validation type that fits a
general case for all Keystone resources.

Change-Id: I4878a1c718159304960fc7c40c1a80b8599c5657
bp: api-validation
Add audit support to keystone federation

implements bp audit-support-for-federation

Change-Id: Ifb1d8b593e8f387afd404367bd6c458243aa2695
add missing log hints for level C/E/I/W

This patch adds log hints for the levels critical, error,
information and warning.

Change-Id: If5e4073755a2805031eb27271d3865ec12cdef7f
Endpoint table is missing reference to region table

Endpoint table is updated to make foreign key
reference to Region table and this patch
implements the following blueprint

bp: endpoint-table-missing-reference-to-region-table

DocImpact

Change-Id: I43a438bcdb0e6882aa78f16d3bff09ddf36ba67f
Add index for actor_id in assignments table.

Searching the assignments table by actor_id is a common occurance
and in a large OpenStack installation, this can be a significant
performance degradation.  This table is read much more often than
it is written, so this should be a good trade off.

Change-Id: Ia1a4392ca2118690a10130b10b2f69cd05672a12
Closes-bug: 1362557
Spelling errors fixed in the comments

Change-Id: I68abed3cbc0846a75d723ed7ca69c26d5903b446
Fix token flush fails with recursion depth exception

keystone-manage token_flush was failing with a recursion depth
exception error. This is because when a property was referenced in
token.persistence.Manager it would go into an infinite recursion
trying to resolve it. token.persistence.PersistenceManager should
have been used instead.

Note that I added a test for keystone.cli TokenFlush, but for some
reason it doesn't actually expose the problem. I'll leave it there
since it increases coverage.

Change-Id: If5af4fe0811a59157c2f68d06c264815409689e1
Closes-Bug: #1363224
Merge "Adds tests that show how update with validation works"
Merge "Mark the trust kvs backend deprecated, for removal in Kilo"
Merge "Do not load auth plugins by class in tests"