Make the py33 Jenkins job happy

This is the first step toward getting Keystone up and running on
Python 3. This patch will create a virtualenv, but will not actually
run any tests. Future patches will enable testing modules as
incompatibilities are worked out.

bp python3

Change-Id: I1ca3bad7ec8789872791a18594cd6f3b4bf911eb
First real Python 3 tests

The goal of this changeset is to enable at least some of the tests to be
run under Python3. Even if we can't get them all to run initially it's
important that we start seeing the changes from bp keystone-py3kcompat.
Also it's important that we are checking for regressions. If we do all
this Python 3 work, but don't have automated tests in place we may
inadvertantly undo that work.

In this initial changeset I had to do some not nice things to get this
to work.

First I had to switch to using the nose test runner. testr seems to be
much more aggressive about importing everything, even when you are not
going to run the test module. This idea came from oslo. Once we have
full Python 3 support we can go back to testr.

Then I had to mock out some of the libraries that don't work on Python
3. This is unfortunate, but had to be done because keystone.test.core
indirectly imports a significant amount of the codebase.

bp python3

Change-Id: I6dd0d1b84380c4c386f70b72cdfcdf9b744c755f
setUp must be called on a fixture's parent first

There is some odd behavior when a fixture's setUp fails before it has a
change to call the parent's setUp. It causes an error in the error
handling and the original exception is lost. The bug has been reported
upstream:
  https://bugs.launchpad.net/python-fixtures/+bug/1299502

Change-Id: I27cbfbe2c8ae34e72950361f8d0d7d8d3e249f8c
Fix cache configuration checks

There were two different checks to see if a cache region was already
configured with a backend. Both were changed to use the
Region.is_configured property.

The initial reason for this change was that the hasattr approach in the
test fixture was causing some issues in Python 3. For some reason it was
forcing the __get__ lookup on the descriptor and Python 2 did not.

bp python3

Change-Id: I409656f5ede08160cc68d48e7a3a636328e3e9a6
Refactor service readiness notification

import and apply Oslo systemd module
drop old keystone.common.systemd
drop onready configuration parameter
 - systemd notification is no-op when not running inside systemd

Oslo commit 53e1214c092f09e3851b1a1b55289a93a72b09ec

Change-Id: I80f325c9be9c171c2dc8d5526570bf64f0f87c78
Sync with oslo-incubator 28fba9c

This syncs Keystone with oslo-incubator commit hash
28fba9c262943e3f6b0b10321680fc08cf6b8387 .

In keystone:

$ rm -r keystone/openstack/common

In oslo-incubator:

$ python update.py ../keystone

Commits
-------
0f495ee Emit a log statement when releasing internal lock
9912e5d Add API for creating translation functions

Change-Id: If8c8f6aa96408d7d15e17a0e70e18d7d25df2285
Set proper DB_INIT_VERSION on db_version command

When db_version argument to keystone-manage is used before db_sync
the versioning API incorrectly versioned the DB to 0. The code now
properly references the DB_INIT_VERSION allowing for db_version
to be run on an unversioned database prior to sync.

Change-Id: Idca5c8a3f4822ade8a5566181960085862ec2429
Closes-Bug: 1314340
fixed typos found by RETF rules in RST files

rules are avaialble at https://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser/Typos

Change-Id: Ia2b0e226d3f682fcba59907eadeb2a2c84972175
Merge "Sync with oslo-incubator 28fba9c"
Merge "Set proper DB_INIT_VERSION on db_version command"
Merge "Refactor service readiness notification"
Merge "fixed typos found by RETF rules in RST files"
Merge "Make the py33 Jenkins job happy"
Merge "First real Python 3 tests"
Merge "setUp must be called on a fixture's parent first"
Merge "Fix cache configuration checks"