Drop and recreate FK if adding new PK to routerl3bindings

Since MySQL 5.6 FK columns cannot be altered. As a workaround we can
drop the FK before ALTER COLUMN and then recreate it.

Change-Id: Icd1b3075cf29a6b0c477a4ddea2e6ebee91baef8
Closes-Bug: 1384555
(cherry picked from commit b5f1cc48b877caaebc944154d56a8bb4060aa9b0)
Fix context.elevated

The current version of elevated method sets for the original context
the admin role too. This change fix this.

Added unittest.

Closes-bug: #1386932

Change-Id: Ife881112efa151e53bfa4b7af35643dcf2d1114f
(cherry picked from commit 98fae47ad1b9b72e41d444ce6f96cf5f2a3b6f0c)
Subnet delete for IPv6 SLAAC should not require prior port disassoc

With the current Neutron implementation, a subnet cannot be deleted
until all associated IP addresses have been remove from ports (via
port update) or the associated ports/VMs have been deleted.

In the case of SLAAC-enabled subnets, however, it's not feasible to
require removal of SLAAC-generated addresses individually from each
associated port before deleting a subnet because of the multicast
nature of RA messages. For SLAAC-enabled subnets, the processing of
subnet delete requests needs to be changed so that these subnets will
be allowed to be deleted, and all ports get disassociated from their
corresponding SLAAC IP address, when there are ports existing on
the SLAAC subnet.

Change-Id: I281f5a1553248e09174dc49d0a42aef4b5c44bee
Closes-Bug: 1393435
(cherry picked from commit ce5e95723925b0d7750bb3daa5be54765985cc30)
linuxbridge-agent: make vxlan unicast check more efficent

A list with the full range of vxlan VNIs (1 to 2**24) was using
over 300MB of memory. This patch uses xrange instead of range.

Closes-Bug: #1393362
Change-Id: I21ccab758e7911712690fd5e732f64361e809264
(cherry picked from commit 0bf69ad80fb77773e767e116357cf6e1666b3f5d)
Convert all incoming protocol numbers to string

PostgreSQL is more sensitive for types than MySQL when it selects
something from columns in database. So it fails when it tries to
select from string field comparing with integer value.

Added unit test to verify conversion of protocol numbers to
strings.

Closes-bug:#1381379

(cherry picked from commit bc34f26302faea116be7e61051c32f8787530836)

Conflicts:
	neutron/tests/unit/test_extension_security_group.py

Change-Id: I0a29595403a07c66888871088d5549705a097f68
Fix metadata proxy start problem for v6-v4 network

Commit 1b66e11b5d8c0b3de0610ca02c3e10b6f64ae375 introduces
a new problem that metadata proxy will not be started when
an isolated network contains ipv6 subnet with dhcp enabled
and a ipv4 subnet.

This fix separates the checks to enable dhcp and enable metadata
so metadata proxy can be started if there is ipv4 subnet exists
in the network with metadata enabled.

Change-Id: If26806083db225e9ab30d75fa6c728ce99a7cafe
Closes-Bug: 1392564
(cherry picked from commit 4c128c351589ef9f2fc1e084c655a97bdbbda7ce)
Fix handling of CIDR in allowed address pairs

A CIDR in allowed address pairs would screw up
the calculation of remote security group member
IP addresses due to a call that assumed each entry
was an IP. This patch fixes that an adds a remote
security group reference to the address pairs SG
test case to exercise this code-path.

Closes-Bug: #1382562
Change-Id: I2676f4b56bce7449579d67fb221b3edb7b885103
(cherry picked from commit a1e78b2e8836053d8ffb29bce0f862e8a5f19c2f)
Merge "linuxbridge-agent: make vxlan unicast check more efficent" into stable/juno
Merge "Fix context.elevated" into stable/juno
Merge "Drop and recreate FK if adding new PK to routerl3bindings" into stable/juno
Merge "Fix metadata proxy start problem for v6-v4 network" into stable/juno
Prevent an iteration through ports on IPv6 slaac

A recent change[1] allowed subnets to be deleted even if they
had active IPv6 SLAAC allocations on them. The updated check
was inefficient because it would check every port in the subnet
even if the subnet was a SLAAC subnet. This patch just shortcuts
out that check.

1. I281f5a1553248e09174dc49d0a42aef4b5c44bee

Change-Id: I2c35495b3642c644e4758f28ccddcc076139ec3b
(cherry picked from commit b3a44c2d5d8ca85bcc5ccffc76d2a959e373e5d4)
Merge "Subnet delete for IPv6 SLAAC should not require prior port disassoc" into stable/juno
Merge "Prevent an iteration through ports on IPv6 slaac" into stable/juno
Updated from global requirements

Change-Id: I72045d8a7b5abbd6ad6b9a01f9a5fa653c37b464
Merge "Fix handling of CIDR in allowed address pairs" into stable/juno