Improve exception from importutils.import_class().

The ImportError raised by import_class() attempted to tell you what the
original error was by just doing str() on the original exception.
Sometimes that's helpful, but sometimes a full traceback is needed.
This patch includes a traceback for debugging purposes.

Change-Id: I00cefb9ebf9d6a71ef491204d81765e30e7941f6
Add 'filedecoder' method to the jsonutils wrapper module.

Fixes bug #1017765

After version 3.3.2, the anyjson library will throw a KeyError if
filedecoder isn't present.  The filedecoder is just like the decoder
except it takes a file instead of a string, like json.load() instead
of json.loads().

Change-Id: I7bd012a7b4afa9b1ec987c3e6393cc922b5dadff
Split read_versioninfo into a method.

Change-Id: Iec1f9776b6e6fcccdc21b2e67754fff1da23458a
Pass in stream as positional argument to StreamHandler.

Naming it works in python 2.7 but not in 2.6.

Change-Id: I09cb0e707c428fcfb5d8e825d1acf17b00d84073
Update strings like 'openstack.common.notifier.driver'.

I was running into trouble with driver names that were generically named
in common but need to point to specific objects within nova.

Change-Id: Ie75761c73a855b067b1bcec651a1bb998deba9f4
Fix missing RPCException from raise

Change-Id: Ia850b07d29459b760d24f9bffdd88e4176cb7faf
Fix mailmap.

Mailmap was broken in 01cec1dcb1a0b8d6a0ba098f8e18ab3c0f7cabab

Revert offending line only to get unit tests passing again.

Change-Id: I33e8d5d3587b429d44ae60f34ca2f132ce233793
Enable sitepackages in tox.

This enables support for testing qpid (not available in pip)

Change-Id: I36bc0398ed8e8377dfc8af10ae0981e117a3ec20
Add update.sh to avoid import conflicts

Attempts to fix #951197

The openstack nose plugin defines the openstack.common namespace
which can result in exceptions when update.py attempts to import
cfg.

Avoid the issue by using an update.sh script which creates a
no-site-packages virtualenv.

Change-Id: I1ec5cf49361303b79306714122b860f6e4912215
Merge "Pass in stream as positional argument to StreamHandler."
Fix import order.

Fix import order in rpc.common.  They must be alphabetical.  Nova tests
for this and caught it when i synced in the latest changes.

Change-Id: I0dbd6b5004d754d0bd2d1861905db3405c64e3d4
Merge "Fix missing RPCException from raise"
Fix up openstack-common build.

Ironically enough, even though the code to manage this is in
openstack-common, openstack-common wasn't using it. This patch fixes doc
generation, as well as setuptools-git integration and versioning.

Change-Id: Ifb74ad539832d8cec4a536a96221eea8fb7527d2
Switch common files to using jsonutils.

For blueprint use-common-jsonutils

Pretty much just a search and replace.

Change-Id: I66f63e7b0ff82a37d8a6b9acef94f4e10a45bf90
Move get_context_from_function_and_args() to context.py

Word on the street is that exception.py may soon be deprecated,
and context.py is a better place anyway.

(Also removed an import of utils.py because /it/ imports exception.py.)

Change-Id: I856fc6f4558cc01ddca350ee4cfd4684db47475b
cfg: Fix typo in documentation

with with -> with

Change-Id: I7a524c024b05639ec7ab4d57b6a52f70a95d2235
Merge "Add update.sh to avoid import conflicts"
Merge "Move get_context_from_function_and_args() to context.py"
Add common plugin framework.

For blueprint novaplugins.

It turns out that most of the plugin framework applies equally well
to other projects, so it's going into Nova via common so that
other projects can pull it in with a minimum of fuss.

Change-Id: Ia4455a8ca0b8c1c3e4b0b9647e8cacaf0a47c914
Add a new module for use in consuming versioninfo.

The new tag-based versioning produces files that we can consume that tell
us the versioning. That's all well and good, but what good is automatically
generated versioning if there are no apis to consume it. This is derived
from work to add those to nova and python-swiftclient.

Change-Id: I91568ef28a9ed7e7365f66bca2294670df6e0c41