Use openstack.common.lockutils module for locks in tox functional tests.

Tox test has been switched to use openstack.common.lockutils module
for interprocess locks. However neutron tox functional tests was
left behind probably because locking is not required by the existing
functional test cases. This change makes neutron tox functional tests
adopt openstack.common.lockutils for locking.

Closes-Bug: 1332380
Change-Id: I4d6076e5f7586a11ea5381f18774d4bab57b0081
Allow unsharing a network used as gateway/floatingip

If network has ports that connect it as gateway to another network, such
as an external network, or "floating ip" ports it should still be
possible to "unshare" it since these ports represent usage of the
network as an external network, not as a VM data network.

Change-Id: Ic33ae7ac193e4fc9fe06a4cfd579a4aacf0e6354
Closes-bug: #1293184
Expand arp_responder help text

Add additional text to arp_responder help to ensure that
proper documentation is included in the configuration guide.

Make ML2 and L2population references consistent.

Closes-Bug: #1321320

Change-Id: I0fc0691fc3729aa39888c90ca871ad7f711343f8
Bump hacking to version 0.9.2

Change-Id: I871fba00fd2abc1ea24fcd44fbd7526ed1d40537
Fix enums usage for postgres in migrations

For downgrade with postgres it is not enough to just drop_table if
table contains enums. The enums should be removed separately after
deleting the table.

Also, if a migration uses an existing enum then postgresql needs some
specific code to re-use this enum.

Closes-Bug: #1243213

Change-Id: Ie5bb8282f7b289c917679192a0d722eb29b8d30f
Audited attribute for policy update not changing

Updating firewall policy with shared, name or description is not changing the
audited attribute to false. Modified firewall policy update to make audited
to false.

Change-Id: Ic3f3e08190dcdaa8f4ecda729bdb2fdf1bdadc52
Closes-bug: 1327063
Define some abstract methods in VpnDriver class

Define the <op>_ipsec_site_connection() methods to ensure any new
service drivers will implement them.

Closes-Bug: 1326793

Change-Id: Idfe67632893592859990db486393a7108362447e
Log exceptions inside spawned functions

eventlet pool will discards all exception raised inside spawn(_n), it is
hard to discover problems inside spawned green-threads, it is better to
add a function wrapper to log the exceptions raised inside spawned
function.

Change-Id: I753df36c4614759f49134667a55f2a91f0c08317
Closes-bug: #1340708
Configuration agent for Cisco devices

A generic config agent for configuring L3+ services in Cisco devices.

This patch targets specifically configuration of L3 fuctionality,
namely routing, NAT and floatingIPs in Cisco CSR1kv virtual appliance.

Implements blueprint: cisco-config-agent
https://blueprints.launchpad.net/neutron/+spec/cisco-config-agent

Change-Id: Ic887a93480eca0b56049c67e32c98658e3a4427f
Fix ML2 Plugin binding:profile update

The current fix changes the logic for binding:profile
update. The binding:profile should be considered as changed
once it is present in the port attributes and differs from
existing binding:profile. The specified binding:profile with
None value should be treated as request to clear binding:profile.

Change-Id: Ibda9a1beec697fbee5be0ee379349035c3626509
Closes-Bug: 1338202
Call config_parse in base test setup

Some of the tests (e.g. NeutronDbPluginV2AsMixinTestCase) do not call
config_parse so if the database engine is not already been setup by another
test before the config object is reset on teardown, the database connection
will fail since the database config is then empty.

This patch adds a new setup_config method called during the base test case
setUp method which calls config_parse by default to load the default config.
Tests that couldn't use the default config were then modified to override the
setup_config method.

Some other unit tests were slightly adjusted to pass using the default config.

Closes-Bug: #1346673
Change-Id: I3724200fa932115c0a8c264640b1a9dbe431a1cc
Functional tests work fine with random PYTHONHASHSEED

Partial-bug: #1348818

Change-Id: Iccac403585635851c6d121d6e27c1c90b0de5acb
ofagent: Update a comment in port_bound

Change-Id: Ia393f8cbeafe03455b8f75302c71365fcd75a51e
Make dvr_vmarp_table_update call conditional to dvr extension

Without making this call conditional, every l3plugin that
integrates with the ML2 plugin will need to implement this
method and this must not be necessary.

Closes-bug: #1349638

Change-Id: Ie9ba3bad4152810f5bfa530be54be70139cebc0c
Replaced the strings with respective constants

Change-Id: Ie36fde1307a75c1485120d848f8bdb182e5e1fc0
Closes-Bug: 1344497
Race condition of L3-agent to add/remove routers

This race condition happens when repeatedly calling
l3-agent-router-add and l3-agent-router-remove
by different neutron-servers at the same time.

The primary key constraint is added for the pair of
(router_id and l3_agent_id).

During migration, verification is done if the current
records violate the PK constraint defined in this bug
fix, and sanitize the data before schema modification.

Due to different dialects of database engines, different
sql statements are executed correspondingly to do
the verification.

Change-Id: Ia541e023b757b2e77c4eec9bb1670632c7a271fa
Closes-Bug: #1230323
Fix deprecated opt in haproxy driver

If Neutron was updated from Havana, lbaas config file defines user_group
and loadbalancer_state_path in default section but since Icehouse these
settings were moved to haproxy section.
This patch adds DEFAULT group to DeprecatedOpt.

Change-Id: Ic92d4bc81ff6a3b16799414d17ac52e7a4801796
Closes-bug: #1349767
Fix wrong order of tables in downgrade

Heal migration fix bug https://bugs.launchpad.net/neutron/+bug/1336177.
Now table ml2_brocadenetworks has foreign key and downgrade
of 492a106273f8_brocade_ml2_mech_dri fails. To fix this change order
of tables in downgrade is needed.

Closes-bug: #1349810

Change-Id: Ida2ba66d35a952381f213080d417e475e18c196d
neutron.conf does not have the definition of firewall quotas

We have the definition of quotas for firewall/policy/role
in code, but we do not have them in neutron.conf.

Change-Id: I23ae4f5c00ccc62dd9f97c77011da4ce0bbf983e
Closes-Bug: #1349318
Move ARP responder test to sanity command

Additionally, the patch improves the check itself:
To check if the currently installed OVS supports the ARP responder
feature, we try to add a flow that references an OpenFlow ARP
extension via ofctl. The test may fail due to an (expected)
Runtime error, or due to some other unexpected error.
In such a case the error was previously masked and tossed away.

* Clean up ARP responder unit test
* Extract ARP responder flow actions to be used by the unit
  tests, functional test as well as the ARP responder code itself

After this patch, if the sanity check returned False but the
user never ran it or ignored its results, the OVS agent will
output errors to the log every time an ARP entry is (attempted)
to be added or removed from the flow table.

Closes-Bug: #1323718
Change-Id: I428c954d6561cd398a1e580804a9482969a154af