Implicitly ignore attributes that are mapped to None in LDAP

Attributes that are mapped to None in LDAP trigger a 500 error when
performing a search if they are not explicitly ignored in keystone's
configuration.  These attributes should always be ignored, even if
the admin left the attribute out of the ignore list.

Change-Id: Ibbabdd0013059d5720250816764021a0b3ce8ce0
Closes-bug: #1335437
Use oslo.i18n

Keystone was using the I18N functions from oslo-incubator. With
this change, Keystone uses the new oslo.i18n library.

The tests were adapted to not use internal symbols because these are
subject to change.

Change-Id: I1b13fcc630952695424fccd91bcd157d702851f1
project disabled/deleted notification recommendations

These recommendations represent the outcome of the Keystone/Barbican
cross-project discussion regarding:

  https://review.openstack.org/#/c/99658/

This discussion occurred at the keystone hackathon for Juno.

Change-Id: Ib67c85a9f900ef0a6a346cdbf3280b3a8f977ad7
Update middleware that was moved to keystonemiddleware

S3Token middleware has been moved (and slated for removal) in the
Juno Release. This Middleware has been removed from Keystone.

Keystone now uses the middleware located in keystonemiddleware for
providing the code for ec2_token middleware. The middleware class
in Keystone has been deprecated and is slated for removal in the
L release.

Change-Id: Iecda3400c0450bbeed42093dc916825d89b2c3fe
bp: split-middleware
Introduce pragma no cover to asbtract classes

Since the unimplemented methods for abstract classes are not meant to be
actually used, they shouldn't be included in the code coverage
calculation. Thus, to address this I introduced the pragma "no cover" to
these classes.

Change-Id: Id239a2eb42d8288764b8f374d5d13ebd37af5a7d
Fixes a Python3 syntax error

Python3 has a new way to raise an exception with an existing traceback.
In Python2 there was a special syntax, but that was removed in Python3.

bp python3

Change-Id: I6811f7f46693fc84d0c61116cdd4897b6c20a9fc
Capitalize a few project names in configuring services doc

I was using the docs and noticed a few instances of project Names
were not capitalized.

Change-Id: I1edd5cd93e85c89bfff0f16eef6b8c5acf910760
Merge "Use oslo.i18n"
Move token_api.unique_id to token_provider_api

Move the unique_id call from token_api to token_provider_api and
mark token_api.unique_id as deprecated, slated for removal in
the K cycle.

As part of the move to non-persistent tokens, the token_api calls
are being moved (as appropriate) to the token_provider_api in
preperation of token_api being deprecated.

Change-Id: I7186b8af3ecc572ca364d58e2ba1a0303e48aca1
bp: non-persistent-tokens
Move keystone.token.default_expire_time to token.provider

Move the default_expire_time function from
keystone.token.core to keystone.token.provider. The function
keystone.token.core.default_expire_time is slated for removal
in the K cycle.

As part of the move to non-persistent tokens, the token_api calls
are being moved (as appropriate) to the token_provider_api in
preperation of token_api being deprecated.

Change-Id: Ic61e0dc13c7aabadbf75ae7aec30b30ce78d937b
bp: non-persistent-tokens
Consolidate `assert_XXX_enabled` type calls to managers

There are multiple implementations of the various assert_XXX_enabled
methods. These have been consolidated to rely on the appropriate
manager objects (e.g. domain uses assignment_api, user now uses
identity_api).

``keystone.token.core.validate_auth_info`` has been deprecated
with no plans to be superseded as the new ``assert_XXXX_enabled``
methods now cover the functionality.

This is another step in the process to deprecate the functionality
from the token_api (and move relevant logic either the
token provider or other relevant locations).

Change-Id: I450daaca946e9695ff30e058adecef6ef0b9058a
bp: non-persistent-tokens
Merge "Capitalize a few project names in configuring services doc"
Merge "Move token_api.unique_id to token_provider_api"
Merge "Move keystone.token.default_expire_time to token.provider"
Merge "Introduce pragma no cover to asbtract classes"
Example JSON files should be human-readable

Change-Id: I58a68829176a8447133c99908338b90b7204a694
auth tests should not require admin token

Currently all the v3 auth tests are calling self.post(), which
eventually going through keystone.tests.test_v3.v3_request().
The v3_request method always requires an auth token by default.
But since V3 auth token API is an unprotected API, there's no need
for an auth token in order to make the request.

Change-Id: If65305346c0e5e114fd03e4ba089aa2e3694a8b2
Closes-bug: #1317261
Check that region ID is not an empty string

It generates an ID when a POST request to /regions has an empty string as ID

Change-Id: I49afd1f8c2e09ed31329bd8d1d88ca7f29ef7be9
Closes-Bug: 1322639
Regenerate sample config file

The sample config file was regenerated using:
  tox -r -e sample_config

Change-Id: Idc5341b343c4fa5150be47c9c01cd67e216b1142
Fixed tox cover environment to share venv

Change-Id: I57c6dc53c3ebda7bf7530f7805decafe93d474f3