Mark strings for translation in ldap backends

There were several human-language strings not marked for
translation in the ldap backends.

Change-Id: I6e1d1f27bcd4bacf6534e5cb4982e9401dde3f36
Update oslo-incubator fixture to 81c478

This updates the oslo-incubator fixture module level to commit
hash 81c478

 $ git checkout 81c478
 $ python update.py --nodeps --base keystone \
     --dest-dir ../keystone --modules fixture

The changes include a new feature in the Config fixture to
register new config options.

Change-Id: Ia01062d160b6daaa12c87cc77166017be3fa2f30
Fix assignment KVS backend to not use identity

The assignment KVS backend was using the identity API. This change
makes it so that the KVS backend does not use the identity API.

The assignment KVS backend was using the identity API to:

a) Store the user's projects.

The user's projects were also kept in the metadata. So the KVS
backend was changed to use the metadata rather than the user data.

a) Determine if the ID in the metadata was for a user or group.

The metadata for users and groups was split into separate keys.
Metadata for users is now prefixed with `metadata_user-` and
`metadata-groups-` is used for groups.

bp no-check-id

Change-Id: I5cc01d203d12b15575b72ad57aa3820d1d36d09f
Add test for list project users when no user

There was no test that shows what happens when you list project users
(GET /v2.0/tenants/{tenant_id}/users) and a user with a role on the
project doesn't exist. The server returns a 404 Not Found for the user.

bp no-check-id

Change-Id: Iba8836200c22eb5d744b42114cc8c6e864c3e02f
Move filter_limit_query out of sql.Base

With the change to use oslo's db.sqlalchemy.sessions, the
sql.Base class isn't doing enough to justify its continued
existence.

This change is moving the filter_limit_query and related internal
members out of sql.Base to regular functions in the sql module.

Part of bp use-common-oslo-db-code

Change-Id: Ia4f05e5a81ded7e3543e16ecf93260680351f1e4
Fix test_provider_token_expiration_validation transient failure

The keystone.tests.test_token_provider.TestTokenProvider.
test_provider_token_expiration_validation test would fail if the
tests weren't run before the sample token expired. This could
happen if the system was slow and the previous tests took a long
time causing a potential transient failure.

Change-Id: Ia662fcdc0cd26568fa8ea9f27d0a34cb1bfe46e6
Closes-Bug: #1278550
Variable 'domain_ref' referenced before assignment

Variable not declared before try...catch sentences trigger a
"Local variable 'domain_ref' referenced before assignment" error when
an exception is raised.

Co-Authored-By: David Stanek <dstanek@dstanek.com>
Change-Id: I0a63347cb316e3a5923243dd934a7fc51dbf1e13
Closes-Bug: #1274402
Rationalize the Assignment Grant Tables

Currently there are four different tables in the assignment sql
backend, one for each type of grant.  This leads to significantly
more complex code.

This patch rationalizes these four tables into a single Assignment
table, with the minimal of rework to calling functions of the
sql backend.  A subsequent patch will improve efficiency of the
calling code by taking advantage of a single Assignment table.

Blueprint: role-assignments-unified-sql

Change-Id: I7e604d718b29ad28b4d59458c7a528c01ff9804d
Implement mechanism to provide non-expiring keys in KVS

This patchset implements the ability to define non-expiring keys
for dogpile.cache backends. The non-expiring keys are relevant
in the case of drivers that can automatically remove keys after
a given time (e.g. memcache). This new non-expiring-key
functionality is currently only implemented for the provided
memcached backend.

bp: dogpile-kvs-backends
Change-Id: I7e25e0049e5b8697c5cb67272b660519c3c3305e
Convert Token Memcache backend to new KeyValueStore Impl

This patchset converts the memcache backend for tokens to the new
KeyValueStore implementation.  This implementation provides basic
configuration choices for utilizing memcache as a token backend.

The test_backend_memcache test suite has been removed, as there is
no extra functionality added on top of the KeyValueStore base
besides the basic configuration choices.  The test_backend_memcache
test suite was only used for testing token memcache backend.  The
important unicode tests have been moved into the base token test
suite and should now validate against all token backends.

Closes-Bug: #1260080
bp: dogpile-kvs-backends
Change-Id: I8f0bca409a6393176e77f7a27ba15959756da06f
bad config user_enable_emulation in mask test

Use the correct key user_enabled_emulation in the test.
Closes-Bug: #1282306

Change-Id: I8cd2248a9bcff12489de30368f5f54d02f0854c4
Merge "Variable 'domain_ref' referenced before assignment"
Merge "Implement mechanism to provide non-expiring keys in KVS"
Merge "Fix assignment KVS backend to not use identity"
Merge "Move filter_limit_query out of sql.Base"
Merge "Convert Token Memcache backend to new KeyValueStore Impl"
Remove sql.Base

With the change to use oslo's db.sqlalchemy.sessions, the
sql.Base class isn't doing enough to justify its continued
existence.

This change removes sql.Base.

Part of bp use-common-oslo-db-code

Change-Id: I2fec97187bdca920757585994810f6a8065be4c4
strengthen assertion for unscoped tokens

previously, unscoped tokens with the following structure would have
passed testing:

    {"access": {"token": {"tenant": null}}}

... which wasn't the desired behavior.

Change-Id: I16a718a8936bb155d68510dcf9db8eb4d4223bf4
Fix assertEqual arguments order

assertEqual method's arguments should be in
('expected', 'actual') order.

This patch fixes this problem of the following modules:

* keystone/tests/test_auth.py
* keystone/tests/test_sizelimit.py
* keystone/tests/test_ssl.py

Partially Close-bug: #1277104

Change-Id: Ic1bd330544fa954cd683ece75b953259e70440fe
Merge "Fix assertEqual arguments order"