Log exceptions inside spawned functions

eventlet pool will discards all exception raised inside spawn(_n), it is
hard to discover problems inside spawned green-threads, it is better to
add a function wrapper to log the exceptions raised inside spawned
function.

Change-Id: I753df36c4614759f49134667a55f2a91f0c08317
Closes-bug: #1340708
Do not assume order of parameters in OVSBridge.add_flow call

This fixes neutron.tests.unit.agent.linux.test_ovs_lib.OVS_Lib_Test.test_add_flow
unit test that breaks with a randomized PYTHONHASHSEED.

The test assumed that the parameters passed to add_flow had
elements in a particular order. Found with PYTHONHASHSEED=2455351445.
The fix refactors the test case to match parameters as set.

Partial-bug: #1348818

Note: There are several other unrelated unit tests that also break with a
randomized PYTHONHASHSEED, but they are not addressed here. They will be
addressed in separate patches.

Change-Id: Ibe2f4d929b8b42c8c909c2306d2554faf7109b49
Use oslo.db create_engine instead of SQLAlchemy

oslo.db may set additional options to engines that we may be interested in.

blueprint enable-mysql-connector

Closes-Bug: #1350942
Change-Id: I6f67bb430c50ddacb2d53398de75fb5f494964a0
Removing sorted() function from assertEqual()

Removing unnecessary sorted() function from assertEqual() function
calls in functions used for sorting and pagination testing

Using sorted() breaks sorting tests objective which is to test sorting.
This is causing every unit test using this functions
(_test_list_with_sort, _test_list_with_pagination, _test_list_with_pagination_reverse)
for sorting tests to always succeed

Switched the parameters for assertEqual() function within the fixed code to meet
its signature - assertEqual(self, expected, observed, message='')

Test neutron.tests.unit.vmware.vshield.test_lbaas_plugin.TestLoadbalancerPlugin.test_list_vips
was succeeding because of this bug, although it should fail. It failed after the bug was fix.
Test was fixed.

Change-Id: Ia36b81d9a7fd32cae3b567ac1899b56481eb62ce
Closes-Bug: #1355251
ext-gw update on dvr router improperly handled by l3-agent

The recently added external_gateway method does not check
the agent mode or host binding before adding an external
gateway to a particular node/agent.  This fix adds the
required checks in the update path.

Change-Id: Idbb76eea1faec1c5d6b7615d23d74760cc327bb2
Closes-bug: #1356734
Merge "Do not assume order of parameters in OVSBridge.add_flow call"
Merge "Removing sorted() function from assertEqual()"
Merge "Log exceptions inside spawned functions"
Merge "Use oslo.db create_engine instead of SQLAlchemy"
Merge "ext-gw update on dvr router improperly handled by l3-agent"