fix bug lp:910491 option "service_host" in keystone.conf not works

Change-Id: I1a0b78a2ef9dab287e719657c058f4ed2675b2c1
Install a good version of pip in the venv.

Change-Id: I894274207ecd47e4ac319f7e01bc44455419f58c
Un-pythonic methods lp:911311
Fixed pep8 problems
Changed comments to docstrings.

Change-Id: Ida14c6c307adf22429d96f8a1be56df565a44794
Updates to Tests/Testing

Improve logging, error handling, messaging, and overall
functionality.

- Added '--only' as option as well as '-O' flag to select test
  suites (for consistency with other flags)
- Updated tracer to pop it's argument out of sys.argv (and
  refactored/optimized some code)
- Updated test cleanup so we can now run all suites in
  the same process (less messing about with Popen/Wait)
- Addressed many (handled) import errors showing up with new
  logging (many unnecessary in backend loader)
- Added logging along the way
- unittest.skip not working in test_middleware, so explicitely
  raised SkipTest exceptions
- Made test suites skip intelligently if test filter calls for
  client, functional, or unit tests
- Configured all suite config files to point to same log file
  to more easily debug when running multiple suites

bp keystone-logging

Change-Id: Ic05306c9b8e249c2cbcf92bda3c066031835901b
Merge "fix bug lp:910491 option "service_host" in keystone.conf not works"
Merge "Un-pythonic methods lp:911311 Fixed pep8 problems Changed comments to docstrings."
Changes run_tests.sh to also run pep8 by default.

Can be turned off by passing -P on the command line.
Fixes bug lp911438.

Change-Id: Icf719702d496f08b14b7855a1d99ec5419ac63bf
PEP8 keystone cleanup

The None, True, and False values are singletons.

All variable *comparisons* to singletons should use 'is' or 'is not'.
All variable *evaluations* to boolean should use 'if' or 'if not'.
All Object type comparisons should use isinstance()
instead of comparing types directly.

Change-Id: Ic3dfcd81ae772fa8cccaa8c0bfa3a4e3a54ae05a
Implement Endpoint, Endpoint Template, and Credential Managers

- removed api.ENDPOINT_TEMPLATE calls from service.py
- removed api.CREDENTIALS calls from service.py
- separated operations on Endpoints from operations
  on Endpoint Templates
- removed reference to backend api from imports
- Applies to:
      bp keystone-refactor-backend
      bp refactor-keystone-models

Change-Id: I81d34455f847e4a8b1a3bcdd2a2b2b6c581e769c
Merge "PEP8 keystone cleanup"
Merge "Implement Endpoint, Endpoint Template, and Credential Managers"
Remove install_requires processing.

This is based on a similar change to nova:
https://review.openstack.org/#change,2800

Loading install_requires with the contents of pip-requires
isn't getting us any real beneift and is causing issues.

a) It can conflict with installing keystone into an environment
where deps have been installed from packages (devstack)
b) It breaks the ability to use -e git urls in pip-requires
which we want to start using for python-novaclient and
python-keystoneclient
c) It causes spurious network traffic when we're trying to
test things.

At the same time, since we are not expecting anyone to install
keystone from setup.py for production, the normal benefit of the
feature is not needed.

Change-Id: I7235e1bff75a9fd1455daa684300a83c4295bd9c
fix bug lp:843064

change description of for integrating with nova.

Change-Id: I8c9dc9922efd4aa055c2f0e984aaad1cd7e9bca6
Correct endpoint template URLs in docs.

Change-Id: I6ef379d2b9f7442b3a53e03dc680dff17ad506ca
Initial keystone-manage rewrite (bp keystone-manage2)

- Example session: http://paste.openstack.org/show/3927/
- Example usage: ./bin/keystone-manage --help
- Example usage: ./bin/keystone-manage version --help
- Commands are implemented as decorated classes
- The name of the command module *is* the name of the command
- Testing
  - Includes base testcase for testing commands, with the following coverage:
    - Unit test command classes directly
    - Unit test by passing parsed args (via argparse)
    - Use output buffer to make assertions on stdout
  - Includes tests for 'version' command
  - Includes tests for OutputBuffer
- Routing calls through bin/keystone-manage to manage2.
  - New command names use a different syntax, so none should collide.
    - Old: 'subject verb' (e.g. 'user add')
    - New: 'verb_subject' (e.g. 'add_user')
  - Implication: --help for original keystone-manage is now overridden
    by that from manage2
- OutputBuffer captures stdout as a string for testing commands
  - Example usage:

      with buffout.OutputBuffer() as ob:
        print 'foobar'
        assert ob.read() == 'foobar\n'

Change-Id: Iafd25d77df600ca70e19925936f3e997109f4d68
Added decorators for admin and service_admin checks

BP: keystone-internal-authorization

Also updated the unit test base to include user roles in order to
add unit tests to the logic/service.py classes.

Change-Id: I57312594e90a7970caf335a0864da195bf6bebe7
Merge "Correct endpoint template URLs in docs."
Merge "Initial keystone-manage rewrite (bp keystone-manage2)"
xsd fixes

- use=optional applies to attributes. The way
  to have an optional element is to use minOccurs=0
  This was fixed in tenant.xsd (was failing validation)
- Updated api.xsd and endpoints.xsd (recursive references)
- Removed old, invalid entries from RAX extensions

Change-Id: I6264c3166fe6f5a93360f9c01020784feb2a69ce
Implement Role Model

- Replace logic.types.Role(s) with models.Role(s)
- Also impacts UserRoleAssociation since that is
  effectively a Role granted to a user
- Reorganized sqlalchemy.api.role file and grouped
  rolegrant separately from role calls
- Made rolegrant and role calls return models.Role(s)
- Deleted logic.types.role
- Added enhancements to models to handle class-level
  serialization hints and XML namespace
- Create AttrDict class to hold attrs and simplify
  set/getattr overrides
- Renamed test modules to lowercase (PEP8)

- Applies to:
      bp keystone-refactor-backend
      bp refactor-keystone-models

Change-Id: I33784caa75aba5bbba822dc7169259cab0b73115