LBaaS: synchronize haproxy deploy/undeploy_instance methods

When creating/deleting lbaas objects at a high rate (like tempest api tests do)
deploy/undeploy_unstance methods of haproxy namespace driver
may be executed concurrently which leads to different conflicts with
network namespaces and interfaces created by the diver.

@synchronized decorator should be used in order to ensure that only one thread
will execute one of the methods at a time.

Closes-Bug: #1260692

Change-Id: Ibe86653c20c9a4e0b4e7b3b2cefbd445428b82da
Add binding:host_id when creating port for probe

When probe is created it needs to have correct bindings otherwise port
is marked as dead.

Change-Id: I64441fbe802aab068c129c9647c7144fcd4c50a1
Partial-Bug: #1262785
Fix negative unit test for sec group rules

Ensure the test fails because the security group
rule could not be created, and not because the security
group was deleted before creating the rule.

Closes-Bug: #1268561

Change-Id: Ib2ea8c4507862d7bb343ce5181cf018b3cdf4b73
Configure plugins by name

To configure core plugin or service plugins, instead of using class names,
simpler names can also be used, ex:

service_plugins = router, firewall, lbaas

For compatibility with previous versions, the class name of a plugin can be
specified instead of its entrypoint name, ex:

service_plugins = router, neutron.services.firewall.fwaas_plugin.FirewallPlugin, lbaas

DocImpact

Implements: blueprint config-plugin-by-name
Change-Id: Ia4aaa1d305b160a4d6dab9e227c744727a4c78c2
Update RPC code from oslo

The common RPC code has been updated to include the following:
    8575d87af49ea276341908f83c8c51db13afca44
    8b2b0b743e84ceed7841cf470afed6a5da8e1d07
    23f602940c64ba408d77ceb8f5ba0f67ee4a18ef
    6d0a6c3083218cdac52758a8b6aac6b03402c658
    7cac1ac1bd9df36d4e5183afac3b643df10b1d4d
    8159efddabb09dd9b7c99963ff7c9de0a6c62b62

Updated to include the following in modules in openstack-common.conf:
py3kcompat, sslutils, and versionutils.

The update also includes imports from the RPC code

Change-Id: I84c5b8e2b17da0018dd69ecb354d123a609afe98
Merge "LBaaS: synchronize haproxy deploy/undeploy_instance methods"
VMware NSX: add sanity checks for NSX cluster backend

Ensure that all transport nodes registered are up
and running. A failure here, may prevent a lot of
failures down the lines.

Change-Id: I3473928e296ec6792f34bc27a4ae797fed337e7c
Closes-bug: #1267468
Merge "Add binding:host_id when creating port for probe"
Merge "Fix negative unit test for sec group rules"
Clean up ML2 Manager

Some things need cleanup in the ML2Manager.

1) Replace sys.exit(1) with raise SystemExit(1)
2) Replace reserved keyword type with network_type

Change-Id: I921bfaec7d3e31503942b3ca4a1b2218c44b14ac
Closes-Bug: #1259646
Merge "Configure plugins by name"
Merge "Update RPC code from oslo"
Merge "VMware NSX: add sanity checks for NSX cluster backend"
Merge "Clean up ML2 Manager"
Remove and recreate interface if already exists

If the dhcp-agent machine restarts when openvswitch comes up it logs the
following warning messages for all tap interfaces that do not exist:

bridge|WARN|could not open network device tap2cf7dbad-9d (No such device)

Once the dhcp-agent starts it recreates the interfaces and re-adds them to the
ovs-bridge. Unfortunately, ovs does not reinitialize the interfaces as they
are already in ovsdb and does not assign them a ofport number.

This situation corrects itself though the next time a port is added to the
ovs-bridge which is why no one has probably noticed this issue till now.

In order to correct this we should first remove interface that exist and
then readd them.

Closes-bug: #1268762

Change-Id: I4bb0019135ab7fa7cdfa6d5db3bff6eafe22fc85