Sync common db and db/sqlalchemy

To use db/sqlalchemy/test_base.py we need the test.py file, which does
not synced to Nova. Latest common db.sqlalchemy uses oslotest. The problem with
unexisting common/test.py is solved implicitly with synchronization of common
code.

Contains oslo-incubator commits:

54f7e7f Prevent races in opportunistic db test cases
8a0f581 Use oslotest instead of common test module
4a591ea Start ping listener also for postgresql
f0e50ed Add a warning to not use get_table for working with ForeignKeys
2fd457b Ignore migrate versioning tables in utf8 sanity check
9fed4ed Fix Keystone doc build errors with SQLAlchemy 0.9
f7705f3 Make table utf-8 charset checking be optional for DB migration
5b7e61c Dispose db connections pool on disconnect
295fcd9 Do not use the 'extend' method on a dict_items object
d1988b9 Set sql_mode callback on connect instead of checkout
a1a8280 Fix excessive logging from db.sqlalchemy.session
dc2d829 Add lockutils fixture to OpportunisticTestCase
d10f871 Adapt DB provisioning code for CI requirements
5920bed Make db utils importable without migrate
9933bdd Get mysql_sql_mode parameter from config
96a2217 Prevent incorrect usage of _wrap_db_error()
6cab37c Python3: define a __next__() method for ModelBase
20a7510 Add from_config() method to EngineFacade
fea119e Drop special case for MySQL traditional mode, update unit tests
a584166 Make TRADITIONAL the default SQL mode
5b9e9f4 Fix doc build errors in db.sqlalchemy

Closes-Bug: #1255532
Change-Id: If26b648dee95abc5aa0bf80d3111265b00141b6d
Allow admin user to get all tenant's floating IPs

When getting floatingips by Nova API, the results will be filtered
with the 'tenant_id'.
So, we can only get the floatingips belonging the tenant of current
context.
When ceilometer invokes novaclient to list floatingips, it will get an
empty list because the tenant is 'service'.
we should allow an admin user to index all tenants's floatingip by adding a
parameter 'all_tenants'.

Part1:
    part1 try to implement this and part2 will remove the unused codes.

Change-Id: I7ab1d5ff463fc29928f6811f846c9e204390a412
Closes-bug: #1262124
Add VIF mac address to fixed_ips in notifications

Currently the payload of the notification only contains fixed_ips from VIFs,
the mac address from VIFs is also a very important information and
should be included with the payload of the notification.

This patch add the VIF mac address to each fixed_ips as a new attribute
named "vif_mac".
Notification will looks like:
 	u'fixed_ips': [{u'address': u'192.168.44.1',
                           u'floating_ips': [],
                           u'label': u'publica',
                           u'meta': {},
                           u'type': u'fixed',
                           u'version': 4,
                           u'vif_mac': u'fa:16:3e:93:ec:d5'}],

Closes-Bug: #1320374
Change-Id: I071b8fa75fecdae556c7ad72878ca8f86cf57139
Fix direct use of aggregate module objects

This replaces all uses of nova.objects.aggregate.Aggregate* with
nova.objects.Aggregate*.

Partial-Blueprint: object-subclassing

Change-Id: Ib1abb5a3d85c2bc4aae9951da97bea24fe6327de
VMware: spawn refactor - phase 1 - copy_virtual_disk

Move copy_virtual_disk to vm_util and change all copy_virtual_disk
in vmops to use it

partial blueprint vmware-spawn-refactor
Co-authored-by: Tracy Jones <tjones@vmware.com>

Change-Id: I0cda2bd465dc8a9de1b7ff4c1220e77b9c797471
Merge "Fix direct use of aggregate module objects"
Merge "Allow admin user to get all tenant's floating IPs"
Merge "VMware: spawn refactor - phase 1 - copy_virtual_disk"
Merge "Add VIF mac address to fixed_ips in notifications"
Merge "Sync common db and db/sqlalchemy"