Make ZeroMQ based RPC consumer threads more robust

Consumers could potentially raise an uncaught exception
and exit prematurely.

Related to bug 1189711

Change-Id: I9cb32d8530f3a1dd623e193476e02b990b40b466
Fix wrong argument in openstack common policy

Fully fixes wrong param passed to the exception constructor from oslo.config
occurring in Enforcer._get_policy_path

Closes-Bug: #1208397

Change-Id: I28b11178808b447555e6e6e63383904749c77b18
Use single meta when change column type

Function _change_deleted_column_type_to_boolean_sqlite() from module
openstack.common.db.sqlalchemy.utils uses get_table() function to get
required Table object. Function get_table() creates a MetaData object and
returns the Table instance using this metadata. When function
`_change_deleted_column_type_to_boolean_sqlite` creates new table, it
also create new MetaData() objects.
It's works fine in most cases, but when table has foreign key, there is
no possibility to find related table for new table because related table
absent in new metadata.

To fix this issue we get metadata from received Table object.
Test added.

Fixes bug 1210163

Change-Id: I9c441d263e6e87fce702b12f5d2c4a9144cfb7e4
Replace using tests.utils with openstack.common.test

It is the first step to replace using tests.utils with openstack.common.test.
All these tests don't use mock objects, stubs, config files and use only
BaseTestCase class.

Change-Id: I511816b5c9e6c5c34ebff199296ee4fc8b84c672
bp: common-unit-tests
User quota update should not exceed project quota

When user quota is not set, the default quota set in
config file will be used as the default user quota,
this will break the logic of user quota (the default
user quota should be restricted by the project quota)

Fixes bug 1208400
Fixes bug 1205582

Change-Id: Id98d504d8f5e0dda642fa5e7c550acea79520c3d
Fixes files with wrong bitmode

Some modules have bitmode 755. Changed to 644

Change-Id: I2084779186fcbd5ee2010451531355a0c67897f5
Move `./run_tests.sh` to Oslo

Moved Nova `./run_tests.sh` script to `tools/run_tests_common.sh` file.
This script run unit-tests and can be reused in other projects.
Added script `./run_tests.sh` with project specific variables to run
`tools/run_tests_common.sh` script.
Added required `tools/*` files for pretty colorizer outpoot.
Modified `tests/utils.py` file - added work with OS_TEST_TIMEOUT,
OS_STDOUT_CAPTURE and OS_STDERR_CAPTURE environment variables from .testr.conf

blueprint run-tests-script

Change-Id: I057e8cf2c74d160402cb881fc761623c74905b7e
Update .mailmap

Change-Id: I9ea7398281fe57c02df74854ecac8431125638e0
Allow mapping _ to lazy gettext path

Since nova has switched from using gettext.install for
importing the _ function to explicitly importing the _
function from gettextutils, we need to be able to enable
our deferred translation code path on the gettextutils._
function.

Change-Id: I7fec00810ea57c985e1f43c644913a9980b35655
py3kcompat: Add urljoin compatibility

Add urljoin for python2/python3 compatibility,
used by python-keystoneclient.

Change-Id: Ied0841bf6b34d0087002c77915031156767b3d8d
Signed-off-by: Chuck Short <chuck.short@canonical.com>
requeue instead of reject

Requeue the message instead of rejecting it. The AMQP spec
suggests reject()'ing the message to get it back in the queue.
The trick is that there is a parameter "requeue=True" required
to make this happen. Under kombu, this is done as a separate
command instead of a parameter on reject().

Change-Id: I6e820841b87eedb03318124e7d70be8da6970cc2
Merge "Fixes files with wrong bitmode"
Merge "Update .mailmap"
Merge "Fix wrong argument in openstack common policy"
Merge "Move `./run_tests.sh` to Oslo"
Merge "Allow mapping _ to lazy gettext path"
Don't eat callback exceptions

In order to properly ack(), reject() or requeue() messages
we need to preserve any exceptions thrown by the callbacks.

Change-Id: Icc7a38b69dc0812f94475530f5573342d92a6590
Merge "Replace using tests.utils with openstack.common.test"
Merge "py3kcompat: Add urljoin compatibility"
exception: remove

This patch drops the obsolete openstack.common.exception module.

Most project should define their own exception based on their API and
the context they evolve in. Many projects don't use this, only neutron,
cinder and heat used it. I've copy pasted the few exceptions that they
were using, but that's still by far less code than this whole file.
Ultimately that will let them a chance to remove or shring their own
exception.py. I don't think most projects should have one anyway.

Change-Id: Ia8b2b29bd443233def324e97de7342c2634bccff
Closes-Bug: #1208734