Fix discover command failed to read extension list issue

Fix the key error which caused discover command failed to read the
response body of extension list result. This change also added test
cases to cover the use case of generic client extension discovery.

Change-Id: Id687f8d73cead28f594de00d3b5ff9086558947b
Closes-Bug: #1266710
Sync with global requirements

Change-Id: I366b3a23bcb82203b347fa13f0385024bae62cab
Adjust import items according to hacking import rule

This patch adjust import items and add missing blank lines acording
to http://docs.openstack.org/developer/hacking/#imports
{{stdlib imports in human alphabetical order}}
\n
{{third-party lib imports in human alphabetical order}}
\n
{{project imports in human alphabetical order}}
\n
\n
{{begin your code}}

hacking project also enforce some checks for import group.
Let make the change in keytoneclient

Change-Id: Ic83bd5ee426905588f4a2d555851a9a01fc69f02
Python 3: fix the _calc_signature_* functions

This commit makes the _calc_signature_* functions work in python 3. The issues
were usual text strings vs bytes that arise when porting code to Python 3.

Change-Id: I36b40012b09d4f72e9248b49d51dc545d70abfc6
Sort items in requirement related files

Update two requirement related files with command: sort-i {filename}.
This make these files more readable, can find the libraries easily.

Change-Id: I5969ef37d02814bf2c09761f133464c5a02f0d6b
Remove test_print_{dict,list}_unicode_without_encode

These tests do not really make sense: they expect the strutils.safe_encode()
method to fail for some reason.

Change-Id: I2ca07c06f86e4d83ae153601a0dab9a8f393f3e3
Python 3: set webob.Response().body to a bytes value

In Python 3, the body attribute of a webob.Response instance has type 'bytes':

    >>> import webob
    >>> type(webob.Response().body)
    <class 'bytes'>

Change-Id: Ic60454dd1713ebd5ae84daaa113ccb0270ca37ed
Consistently support kwargs across all v3 CRUD Manager ops

Co-Authored-By: Saju Madhavan <sajuptpm@gmail.com>
Closes-Bug: 1047867
Implements: blueprint extensible-crud-manager-operations
Change-Id: I64e11bcf3797eb84e4695605daea9749259d78ec
Fix typos in documents and comments

Fix typos detected by toolkit misspellings.

* pip install misspellings
* git ls-files | grep -v locale | misspellings -f -

Change-Id: Ifbbc29537d9d129aad238de6c37718c4fbb8349b
Fix E12x warnings found by Pep8 1.4.6

These are missed due to bugs in 1.4.5.

Closes-Bug: #1267994
Change-Id: Ic7b37abf757a9b7b0c8306c941949dee93b83e08
Merge "Sort items in requirement related files"
Merge "Remove test_print_{dict,list}_unicode_without_encode"
Merge "Python 3: fix the _calc_signature_* functions"
Merge "Fix typos in documents and comments"
Merge "Fix E12x warnings found by Pep8 1.4.6"
Merge "Fix discover command failed to read extension list issue"
Merge "Sync with global requirements"
Fix discover command failed to discover keystone in ssl

Fix the blocking behavior of keystone discover when trying
to obtain information of the local keystone. It does not
block while checking and checks both protocols HTTP and HTTPS

Change-Id: I43616a348bf04163bf7967a12957556d7edfde40
Closes-Bug: #1270154
Merge "Python 3: set webob.Response().body to a bytes value"
Copy s3_token middleware from keystone

The s3_token middleware was in keystone but it should be in
python-keystoneclient. As a first step to removing s3_token from
keystone, copy it to python-keystoneclient. Also copy the tests.

A couple of changes were required

- Changed oslo-incubator imports from keystone to keystoneclient.
- Changed logging from oslo-incubator to use Python logging and
  configured the same way as the auth_token middleware.

I checked and I didn't see anything to be added to requirements.txt
or test-requirements.txt.

bp s3-token-to-keystoneclient

Change-Id: I64fef4101180e5aa661442d538c3237bdad0c37c
Closes-Bug: #1178741