Delete DHCP port without DHCP server on a net node

A DHCP-network was deleted from one host using neutron
dhcp-agent-network-remove and then added to another host
using neutron dhcp-agent-network-add command. While the
dhcp-agent-network-remove command was in progress, the
host crashed.  As a result, the removal of the DHCP-network
was partially done. The network was disassociated from
the agent in mysql. However, the agent never made the
release_dhcp_port RPC call to delete the port -- even
after the agent restarted. The end result is that there
are two DHCP ports for the same network. One of these
is found on the host that is no longer hosting the
dhcp-server.

This fix make the DHCP agent invoke the release_dhcp_port
RPC call on a stale network whose dnsmasq process is not
running (not active). Before this change, the RPC call is
made on a stale network only when the dnsmasq process is
running.

Closes-Bug: #1244860
Change-Id: Ie0bafdac698810b5455550c306c6a75ddf91d9bb
Add physical_network to binding:vif_details dictionary

During port binding binding:vif_details dictionary is
updated with physical_network to be used by mlnx nova vif driver.
binding:profile update will be removed once nova side fix is merged
to keep consistent solution.

Change-Id: If9525929a1546e8d05f7923570d30dfc2eed8898
Closes-Bug: 1304872
Unit test cases for quota_db.py

This commit adds unit test cases with 100% coverage for the quotas
database implementation in neutron/db/quota_db.py

Closes-Bug: #1312310

Change-Id: Icc08132369e88a2f83fe57f524232e94ec4db702
Performance improvement of router routes operations

This patch fixes inefficiency of updating extra routes.
* remove the code repeated by every routes in validation check.
* remove searching a record to delete per record.

Note: Unit tests are covered by existing ones. So no unit test added.

Change-Id: Ia335ac21c65148063d330e4533a15a73962c43d8
Closes-bug: #1312482
Adding tenant-id while creating Radware ADC service

Adding tenant_id as a parameter when creating Radware ADC service

Changing unit tests to test the udated REST call resource
with tenant as a parameter

Change-Id: I7a3e9bfb492e847195031bb72ef15dae8769e91f
Closes-Bug: #1315815
Restore GARP by default for floating IPs

Restore the default value of the send_arp_for_ha configuration
parameter to 3. This parameter was set to 0 by default to
prevent kernel crashes due to bug 1273386.

Change-Id: Idbdc6ff687734776ede45127878af6ad9b8b3ca1
Closes-Bug: 1317834
OVS lib defer apply doesn't handle concurrency

The OVS lib deferred apply methods use a dict to save flows to add,
modify or delete when deffered apply is switched off.
If another thread adds, modifies or deletes flows on that dict during
another process called deffered_apply_off, its flows could be ignored.

This fix stash reference flows list and point the flows list to a new
cleared flows list. Then, it applies flows from the stashed flows list.

Closes-bug: #1263866
Change-Id: Ia3c6ce181e1599d1474da7eb944feff7d84f1d73
LBaaS VIP doesn't work after delete and re-add

When delete and re-add the same vip, we need to send gratuitous ARP
to flush the ARP cache in the Router.

Change-Id: Id97088abb95f4433a100abdae8c8726b3be42ed2
Closes-Bug: 1301165
Fix issubclass() hook behavior in PluginInterface

Currently, PluginInterface provides an issubclass() hook that returns
True for issubclass(A, B) call, if all abstract methods of B (stored
in B.__abstractmethods__) can be found in the A.__mro__ tuple of
classes. But there is an edge case, when B doesn't have any abstract
methods, which leads to issubclass(A, B) call returning True even if
A and B are not related all.

E.g. issubclass(NeutronPluginPLUMgridV2, NsxPlugin) returns True,
while these two are different core plugins. And it gets even more
trickier when superclasses are involved: e.g. SecurityGroupDbMixin is
a superclass of NsxPlugin, so depending on the fact whether the
python module with NsxPlugin class is imported or not,
issubclass(NeutronPluginPLUMgridV2, SecurityGroupDbMixin) will return
either False or True accordingly.

Closes-Bug: #1308489

Change-Id: I92711a00a19b89729ccdba9cbd8a2e7a2d2868ed
Corrected the syntax of port_update call to NVSD agent

The parameters passed to the agent rpc port_update call in
NVSD plugin were wrong. It is corrected now.

Change-Id: I9ec8f74695b6ca813ffad9e33502d9a2e0bd1f92
Closes-Bug: 1318909
Ensure tenant owns devices when creating a gateway

This patch adds an ownership check in the create_gateway method.
This kind of check can hardly be enforced leveraging the policy engine.

Change-Id: Iffdc9c570d688f824374281b37efd23761883d26
Closes-Bug: 1319583
NSX: Do not extend fault map for network gateway ext

Most of the exceptions defined for this extension already extend
an exception-mapped class. This patch ensures this is true for
every exception and then removes the fault map extension code.

Change-Id: Ifdd9b6d3892cff2d076bdab3a2a1252923e3f85d
Closes-Bug: 1319423
Add mailmap entry

Add mailmap entry for my email address

Change-Id: Ia46c28c86ef3f440556b1b027d2bf0a7f3e721c5
NSX: Do a single query for all gateway devices

When creating a network gateway, do a single query for all
gateway devices, rather than a distinct query for each device.

Change-Id: I9e66539eb36ae75d3dcdd8a9073d2a2f69447e98
Closes-Bug: 1320278
Merge "Performance improvement of router routes operations"
Merge "Corrected the syntax of port_update call to NVSD agent"
Merge "OVS lib defer apply doesn't handle concurrency"
Remove unused parameter

Remove parameter agent_ip of _add_fdb_flow() and _del_fdb_flow()
Change-Id: I2df05026944bcfc446ce5a951df6696a95c2c663
Reorg table ml2_port_bindings when db migration

For DB2, there are restrictions on table access
after ALTER TABLE statements containing
REORG-recommended operations.
Table will be placed in "reorg pending" state
after some continuous alter table operations.
Need run reorg table to make the table available.
More info refer to:
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp
?topic=%2Fcom.ibm.db2.udb.admin.doc%2Fdoc%2Fc0023297.htm

Change-Id: I7fdd61bb4d636d7a3260c0b23152f1f3083cdcfd
Fixes: bug #1318498
Merge "Add mailmap entry"