Add context to TaskManager

Some drivers methods can require context-specific
info. Example: keystone auth enabled, auth_token
required for deploy with use vendor_passthru in API.
Possible usage:
with task_manager.acquire(context, node_id,
                          shared=False) as task:
...
    task.driver.deploy.deploy(task, node_obj)
...

def deploy(self, task, node):
...
    token = task.context.auth_token
    if token:
...

Change-Id: Id51c005499ac4013142f71703a6aa2dca067f1ad
Implement /nodes/UUID/vendor_passthru in the API

The RPC and Conductor layers are already done;
this patch adds some exception handling and implements the
RPC bindings inside the API service so that /vendor_passthru
will be possible.

Change-Id: Iba3feae0445a0eb202efc5b9a346fb9931dc4b00
Add mailmap file

The .mailmap feature is used to coalesce together commits by the same
person in the shortlog, where their name and/or email address was
spelled differently.
http://git-scm.com/docs/git-shortlog

Change-Id: I9260d12fe52b31feae362995641e94969ea6bbbb
Update mailmap for Joe Gordon

Update mailmap to reflect that I am committing from a new email address.

Change-Id: Ie174dc708ff1e1dfb1010441286d96738a8957bb
Merge "Implement /nodes/UUID/vendor_passthru in the API"
Expose /drivers on the API

The /drivers resource will return a list of drivers supported accross
all the conductors.

Change-Id: I3a86bb8cad2a9a86114c3f19a22835fa3771147e
Merge "Add context to TaskManager"
Fix test node manager

_fake_init which did not init _driver_factory
attribute of NodeManager removed from test case.

Closes-Bug: #1245920
Change-Id: I8b081ad41c6fd2daad2156059ce3d74039a6f18c
Merge "Update mailmap for Joe Gordon"
Merge "Expose /drivers on the API"
Add wrapper for keystone service catalog

This patch designed for receiving url of any
openstack service from keystone service catalog.
Examples: Ironic conductor and api are on different
hosts, conductor needs api url for deploy image,
get Glance service api for Ironic.

Change-Id: I3dc7475e10c7a464541be64d69ce97c41be7a650
Merge "Fix test node manager"
Fix i18N compliance

We should use '_("STRING ...")' to enable i18n support

Change-Id: I7db7005dc228c1568de5e72c4c20079024e6e8be
Partial-Bug: #1240402
Merge "Add wrapper for keystone service catalog"
Updated from global requirements

Change-Id: I6e75348a75d0aad38804a7e11097aa0944ee1158
Improve the API doc spec for node

Improve the API doc spec for node and fix some other format problems in
the document.

Change-Id: Iefa645552d55743cad553d1ab9bbaff6612343e2
Partial-Bug: #1202748
Improve the API doc spec for chassis

Change-Id: I2b7604c756a474bafd8f48b0c4b8d848aa9fd539
Partial-Bug: #1202748
Comply with new hacking requirements

With new hacking>=0.8.0,<0.9 requirements, some functions are
now deprecated.

assertEquals -> assertEqual
assertNotEquals -> assertNotEqual
assert_ -> assertTrue

Change-Id: If666b68e6af5fcb9565f10c645b4e13dca16a141
Don't use deprecated module commands

The commands module was deprecated since version 2.6 and it has been
removed in Python 3. Use the subprocess module instead.
See http://docs.python.org/2/library/commands#module-commands

Closes-Bug: #1248216
Change-Id: I16d6baa77637f84b878df3ee6f964ddb9446d7bf
Fix a typo in the name of logger method exception

LOG has no attribute Exception. Should be LOG.exception insetead
of LOG.Exception.

Change-Id: I217dac398ebeb4e289b9b171333c0898f00e4314