Add list of pool ids to HealthMonitor dict

List of pool ids will allow users (and horizon dashboard) to
show associations between pools and monitors more conveniently.

fixes bug 1212258

Change-Id: Ie1e48e554382a6a4df9e1ba6312c505ba2ca8c02
Fix 500 error on invalid security-group-rule creation for NVP

Validate that, when creating rules specifying a protocol different
from TCP, UDP, ICMP and ICMPv6, no port (range) is specified because
NVP does not like it.

The extra validation is specific to the NVP plugin because other
plugins may choose a different failure mode. For example, the ovs
plugin does not complain at all, but it just ignores the port range
if the protocol is not a port-oriented one.

Fixes bug #1213293

Change-Id: I46e9032b5cf7f7d88b9d05c3bf020784b04217d9
Add recent neutron extentions and IB support

Additions to Mellanox Plugin:
Add ML2 compatibility support.
Enable Infiniband Network Type.
Keep the compatibility to Linux Bridge Plugin to allow Network node deployment via Linux Bridge L2 Agent.
Add support for Host Port Binding and L3/DHCP Agent Scheduler.

Implements: blueprint mlnx-plugin-improvments

Change-Id: Ieca518bbd07a39258cd14ceeecd3f9d3e2b6f219
Improve dhcp agent structure to support multiple dhcp models

This patch introduces some minor refactoring of the dhcp
code so that it is easy to support both an in-node/same
process dhcp provisioning model (e.g. with dnsmasq) and
proxy model, where DHCP is provided by an external node.

Higher separation of concerns is also achieved by doing
better data encapsulation.

Implements blueprint dhcp-flexi-model

Change-Id: Icbd215e9682ecaebb6a4300423f3564e8e677566
Analyze re-raised exceptions in Cisco Plugin

Checked all cases of re-raised exceptions. In several cases, the exception
was redundant (re-raising the same exception), so the try block and
exception handling was removed.

In one case, exceptions raised from two sources were re-raised with a
a different exception. Instead of doing this, the original exceptions
were changed and the try block and re-raised exception were removed.

In cases where there were database exceptions that were re-raised as
Neutron exceptions, the traceback was left as-is, since it was more
informative to know the higher level source of the issue.

The same was true for the exception mentioned in the bug, where the
original failure was in the ncclient library parsing the configuration
and it would be more descriptive to know that there was a connection
failure or a config failure, that to know the library method.

bug 1213159

Change-Id: Ie334d2548bf651c61e878bf797adaf8c5880eb86
Add extra_dhcp_opt extension to BigSwitch/Floodlight plugin

Adds support for the DHCP options extenion to the
BigSwitch/Floodlight plugin.

Fixes: bug #1206655
Change-Id: Ida30ca44ecbb9d1208303e47519427a4111f6025
Fix incorrect usage of assertTrue()

The usage of assertTrue() is incorrect, more explicit assert
from the unit test suite(like assertIsNotNone or assertIn)
should be used instead.

Fixes: bug #1217028
Change-Id: I30a80bc9e122d28c22b698e0cb97068c1040bfc3
Signed-off-by: Rosario Di Somma <rosario.disomma@dreamhost.com>
Forbid update of subnet gateway ip when in use by a port

Bug 1186322

If a port is currently using the subnet's gateway IP, which usually
happens for router interfaces, do not allow updates to the gateway IP.
This patch adds an extra query on the IPAllocation model, which
returns at most a single record, and is executed in _validate_subnet
only when the subnet is updated.

Change-Id: Ie29be1b83f9a639562bfc84f3f2c082833126d32
Fix a race condition in add_tunnel_endpoint()

If there are multiple OVS agents concurrently executing
'tunnel_sync' RPC call a race condition can occur
leading to insertion of two different TunnelEndpoint
entries having the same 'id' value.

Unfortunately, we can not rely on:
  - @lockutils.synchronized(), because a Neutron installation can use
    more than one API node
  - with_lockmode('update'), because it works differently in PostgreSQL
    comparing to MySQL and doesn't guarantee that no new rows have been
    added to the table since the select query was issued. Please take a
    look at http://www.postgresql.org/files/developer/concurrency.pdf for
    more details.

The proposed fix:
  - ensures there is a unique constraint set for 'id' column
  - wraps creation of a new TunnelEndpoint entry into a
    repeatedly executed transactional block (so even if a concurrent
    DB transaction has been flushed or commited earlier than this one
    we can handle an integrity error and try again, in spite of the
    specified transactions isolation level value)

Fixes bug 1167916

Change-Id: I62dc729d595f090436199d5e1b6b98a884ead7a5
Merge "Add recent neutron extentions and IB support"
Merge "Fix a race condition in add_tunnel_endpoint()"
Use assertEqual instead of assertEquals

Closes-Bug: #1218185

For unittest, assertEquals is deprecated in py3, use assertEqual
instead.

Change-Id: Ia71b51a0f2625aec5fb4644853a79c2ea80a799c
Imported Translations from Transifex

Change-Id: I8a48ee88df7f54559cd1b05245d6523a127ef665
Load tables of service plugins when migration auto generation

When we run "neutron-db-manage revision --autogenerate", it detects
table deletion of service plugins even when they are configured.
We need to load tables of service plugins to teach alembic such
tables exist.

Change-Id: I9186d36496069c8253683bd200326b80a6565fa6
Closes-Bug: #1218338
Merge "Imported Translations from Transifex"
Support for NVP distributed router

Blueprint nvp-distributed-router

This patch adds support for NVP distributed logical routers
adding a simple attribute extension.
The default router type can be controlled used the default_router_type
option in the nvp section of neutron configuration.
In order to ensure backward compatibility, pre-existing routers
will be treated as centralized routers.

Change-Id: Iaab9ffb6071c93990be711ebb56c212230544a7a
Merge "Add list of pool ids to HealthMonitor dict"
Merge "Fix incorrect usage of assertTrue()"
Merge "Improve dhcp agent structure to support multiple dhcp models"
Fix unsuitable assertTrue/assertFalse in api ut

Some usages of assertTrue()/assertFalse() are incorrect, improve
them to more explicit assert from the unit test suite.

Closes-Bug: #1218621
Change-Id: I22be2af05f06e91020dbaa4cf08bf395d68f563b