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
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
Move base migration test classes to common code

Moved base migration test classes WalkVersionsMixin(),
BaseMigrationTestCase() to openctack common module
openstack.common.db.sqlalchemy.test_migrations.
Tests modified.

Part of blueprint common-unit-tests

Change-Id: I415e11864a1305cf074f2685eb610ae8ce96e8c5
Raise timeout in fake RPC if no consumers found

If you do a call() with e.g. the kombu driver, and there is no consumer
listening, then you will get a Timeout exception.

However, with the fake driver, we just silently return None in this
case. The oslo.messaging fake driver instead raises a Timeout and this
behaviour change turned up a tonne of issues with Nova's unit tests.

Make this change here too so that we can merge fixes for Nova's tests
before porting to oslo.messaging.

Note that although we also raise a Timeout in the case of cast(), but
cast() then just ignores the exception.

I'd add a test for this, but it appears we don't have any unit tests for
the fake driver.

Change-Id: Id14534ea5aff4ab2a27d31ca6f0ad2f2a8d273c8
Update DB maintainers

There are couple of contributors that are working around oslo DB
so it is not Orphan.

Change-Id: Ic103954fe62b7de99d101cb4765760a890f28fbf
Use functools.wrap() instead of custom implementation

In openstack.db.sqlalchemy.session.py:_wrap_db_err() we used
custom implementation of functools.wrap(). So this patch remove
custom implementation and use functools.wrap().

Closes-Bug: #1119726

Change-Id: Ic92658647bc37d81a819581128fec675ad545c4a
Merge "Use single meta when change column type"
Merge "Use functools.wrap() instead of custom implementation"
Merge "Move base migration test classes to common code"
Merge "Raise timeout in fake RPC if no consumers found"
Merge "requeue instead of reject"
Merge "Update DB maintainers"