Avoid race with udev during ovs agent startup

After taking down the veth link between the physical bridge and the integration
bridge call udevadm settle to wait for any udev events to be completely
processed by the operating system before recreating the veth pair.

Some distributions (e.g. openSUSE) have udev rules installed by default that
call e.g. ifdown <interface> during the remove event. If that is processed
after the ovs agent already brought up the veth pair again the veth pair's
link will be down after the agent completed startup and networking will be
broken for all VM instances.

Change-Id: I95520ea96a9804c5261a0c994bbca137535cc37c
Closes-Bug: #1218556
Creates multiple worker processes for API server

This change to the WSGI code uses openstack.common.service to create
multiple worker processes to handle API load.  The main process will
start up a configurable (workers=??) number of child processes which
will all listen on the bind port.  The main process becomes the parent
and manages the children.  The parent is not a worker.

Backwards compatibility is preserved by setting api_workers to 0, the
default.  In this case, no separate worker processes are spawned and
the worker threads run in the main process.

Implement blueprint multi-workers-for-api-server

Change-Id: Iffa76041d0055840ccca852814b0e71f17a950ac
Multiple Neutron operations using script fails on Brocade Plugin

Fixes bug: 1223754

Change-Id: Ifdeed8407a1cb3df9f17267ea582caab385a63f3
Fix l2 pop doesn't propagate ip address updates

Propagates ip address changes when an ip address is :
added, removed, or changed.
Add a new rpc call for the updates of forwarding informations.

Fixes: Bug #1234137
Change-Id: Ib5b971bd02f20a0ea73f88ce9685e944226bb5a2
Remove deprecated NVP options

In Havana, NVP configuration was simplified;
in the process a few options that existed
in Grizzly or older were deprecated. This
change removes those options from the Icehouse
tree.

Fixes bug #1221840

Change-Id: Id83a339c88ec2477718a350b6ac1678ccba01509
Switch agent report_interval option to float

Being able to set report_interval > 0 and < 1 makes
it easier to consistently reproduce rpc race
conditions.

Change-Id: I4d907159147177e98b043e7e800aea5cf8c23103
Related-Bug: #1224001
Fix downgrade in migration

In 477a4488d3f4_ml2_vxlan_type_driver name of table ml2_vxlan_endpoints to drop
was not correct.

Change-Id: I758c42251b2d5bcc921c50394a1313a1ed4ae106
change port status only if port is bound to the good host

if host is set in the rpc message update_device_up/down sent by the agent,
the port status will be changed only if the port is bound to the host.

Change-Id: I0e607c734fbebf0b69f83c3bbd3e25a9783672dc
Closes-Bug: #1224967
Open Icehouse development

This should be accepted/merged once all the RC1 bugfixes are in.

This bumps the target version to 2014.1, effectively opening the master
branch to Icehouse development, ending the feature freeze.

The Havana release branch is cut from the previous commit in master.

Change-Id: I32a2ef85a8dff2b3a681fe7b33fc5dc983b7ab81
Arista ML2 mechanism driver clean up and integration with port binding

fixes bug: 1215097

This patch addresses minor cleanups and integration with port binding
and dhcp support into Arista ML2 mechanism driver.

Change-Id: Icebc4aa1c57278171cc6b5209107b8eab833249c
Merge "Open Icehouse development"
Imported Translations from Transifex

Change-Id: I1d2bca819b92060265cefe00fe67bbccfb6c84d3
Merge "Switch agent report_interval option to float"
Merge "Avoid race with udev during ovs agent startup"
Merge "Imported Translations from Transifex"
Merge "Fix downgrade in migration"
Merge "Remove deprecated NVP options"
Utilizes assertIsNone and assertIsNotNone

Using assertTrue and the 'is' operator to test if an element is None
is too python2.4. Our unit testing framework supports
assertIsNone and assertIsNotNone which were created
for these types of tests.

Fixes bug #1230028

Change-Id: Ia58d92c52d0aca9c22360dd44de19d4e5878ab13
Utilize assertIsInstance

Using assertTrue and the 'isinstance' function to test
if an object is in an instance of some class is too python2.4.
Our unit testing framework supports assertIsInstance which was created
for these types of tests. Let's use assertIsInstance for these tests.

Fixes bug #1230028

Change-Id: Ia03c9f19a1c5e2aef3a6fe530515bd26339a7975
Add clear_db to cleanup for TestCiscoNexusPlugin

Fixes Bug: #1234012
Change-Id: I0829f04ac1a0760d96babcb1154f4f569a0f848f