Properly invalidate cache for get_*_by_name methods

Use the original name for invalidating the cache on the
get_project_by_name and get_domain_by_name when performing update
operations on the name attributes.

Change-Id: If58a3b0a47501096f9fa9eb9cd7a6057f7b29298
Closes-Bug: #1311142
Add missing docstrings and 1 unittest for LDAP utf-8 fixes

A minimal backport of these accepted master commits:

https://review.openstack.org/#/c/82396/
https://review.openstack.org/#/c/82398/
https://review.openstack.org/#/c/82399/

was done for Icehouse in the following:

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

In the above backport review it was requested docstrings be added for
some functions and an additional unittest be added. That work was done
for the Icehouse backport and was positively reviewed, at the same it
was requested the those changes be reflected back into master so as
not to lose them going forward. This patch does that, adds the
docstrings and one additional small unittest.

Change-Id: I881ba9b274692427d4c7b9f5357ee4735b4e6699
Related-Bug: #1172106
Ignore broken endpoints in get_catalog

If an endpoint is created with a malformed URL then get_catalog would
throw a HTTP 500 error. With this change we ignore all malformed
endpoints.

Change-Id: Ibe9a8fa49f410f2a76a0df732247bd6813fc734b
Partial-bug: #1230279
pkiz String conversion

When the PKIZ token provider signs a token, force conversion of the
token to a string as the keystone client cms code produces unicode.

Without this change, Keystone errors out when validating tokens.  It
was only visible in tempest tests.

bp: compress-tokens
Change-Id: Ic932240fbbe5bd9da6197b37cf86092bde510f40
Merge "pkiz String conversion"
Merge "Add missing docstrings and 1 unittest for LDAP utf-8 fixes"
Fix a few typos in the shibboleth doc

Fixed the following:
- incorrect path /etc/shibboleth in an example
- authentication spelled incorrectly
- Shibboleth not capitalized once

Change-Id: Idfb55ef7da0d52ad2d468525363973f2722ed347
Default to PKIZ tokens

Changes the default token format to PKIZ from PKI.

Blueprint: compress-tokens

DocImpact  Changes the default Token Provider to PKIZ
           If only token_format=UUID is set, Keystone
           will not start with a warning about provider
           mismatch

Change-Id: Idf14ab6c6dd3a3cab42c35771416d9096ea4d900
Fix 500 error if request body is not JSON object

In `JsonBodyMiddleware` we expect POST body to be a JSON dictionary,
and failed with 500 error if body was a valid JSON, but not a
dictionary.  Additional check was added along with a test for described
case.

Change-Id: I08ae3c8fa4eb53b67604d8b8791ca19d9c1682e6
Closes-Bug: #1316657
Update sample keystone.conf file

The sample file I generate seems to be different from the one
in the master branch.

Change-Id: I6ecfb41474798e9e980f05c2f7b09299c4758789
fix flake8 issues

Fixes the following flake8 issues:

- import shadowed by loop variable (flake8 F402)
- list comprehension redefines 'role_ref' (flake8 F812)

Change-Id: Ida64ccc9d7ee8b2ecd110a908615d3a94e93785c
Merge "Fix a few typos in the shibboleth doc"
Updated from global requirements

Change-Id: I1628854fac8bf66f8bc28648d28fba253d9c04af
Merge "Update sample keystone.conf file"
Merge "fix flake8 issues"
Merge "Updated from global requirements"
Merge "Properly invalidate cache for get_*_by_name methods"
Fix the typo and reformat the comments for the added option

Change-Id: I01c471976f2c6d80bfe629b61ab75b81d6cabb1a
Related-Bug: #1175904
Merge "Fix the typo and reformat the comments for the added option"
Merge "Fix 500 error if request body is not JSON object"