Moved out common testcases from test_type_vxlan.py

This patch-set will refactor the test_type_vxlan.py and test_type_gre.py.

We need to add testcases for TunnelRpcCallbackMixin() so better we
should move common test cases from test_type_vxlan.py to test_type_tunnel.py and
add testcases for TunnelRpcCallbackMixin() into it.

Partial-Bug: #1381071
Change-Id: I81f8930cf665ccd89c03f0bd2199ce5d1d9dff65
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
Correct raw table regex in test_security_groups_rpc

Currently in test_security_groups_rpc, raw table regex uses nat table
chains regex but raw table chains[1] is a strict subset of nat table
chains[2] so a more strict regex should be used as raw table chains
regex.

[1] OUTPUT, PREROUTING
[2] OUTPUT, POSTROUTING, PREROUTING, float-snat, snat

Change-Id: I6f32cda917c2f882f5fd17b6fa105def5572cdef
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

Change-Id: I0a29595403a07c66888871088d5549705a097f68
Use a string multiplier instead of 59 repetitions

A recently added test case added a long string of repeated 1's
which required a #noqa flag. A string multiplier represents the
same thing in a much shorter fashion.

Change-Id: I2f4d5568b3e132781fc51bd2e9b3efd44c549689
ofagent: Remove obsolete bridge_mappings (agent side)

For ofagent, it has been superseded by physical_interface_mappings
and was planned to be removed in Kilo.

Related: blueprint ofagent-physical-interface-mappings
Change-Id: I68c7e9991a3dc14ccad709ed1a438c7c45420dd6
Update i18n translation for neutron.api log msg's

Validate that hacking rules apply to directory neutron/api

Change-Id: Idd54964dbb3a48505c20117c79ce57913a7f1c12
Partial-bug: #1320867
Fix hostname regex pattern

Current hostname_pattern regex complexity grows exponentially
when given a string of just digits, which can be exploited to
cause neutron-server to freeze.

Change-Id: I886c6d883a9cb0acd9908495eec50bf0411d8ba8
Closes-bug: #1378450
Merge "Convert all incoming protocol numbers to string"
Drop RpcProxy usage from PluginReportStateAPI

Drop the usage of the RpcProxy compatibility class from the
PluginReportStateAPI rpc client class.  It now uses the appropriate
oslo.messaging APIs directly, instead.

Part of blueprint drop-rpc-compat.

Change-Id: I7101331a556bd0a5c8f782ae6cb4103151e6c45c
Drop RpcCallback usage from DhcpRpcCallback

Drop the usage of the RpcCallback compatibility class from
DhcpRpcCallback.

Part of blueprint drop-rpc-compat.

Change-Id: I7c4654455c15c4a545c8b19bfcbf617e6d6593d6
Add some basic rpc api docs

The devref docs had a placeholder file for rpc API docs.  Now that
both a client side and server side interface have been converted from
the rpc compat layer to oslo.messaging APIs, add some docs that give
an overview of what the client and server sides look like.

Also include a section that describes the code layout of where you can
find client and server api implementations in the neutron code base.
It starts by discussing the DHCP agent related APIs.

Part of blueprint drop-rpc-compat.

Change-Id: Ib391958252077365a81bcb881ab27a078f71fdec
Drop several uses of RpcCallback

This patch drops several uses of the RpcCallback compatibility class.
All of these were trivial and straight forward conversions so I
batched them up.

There are still several other uses of RpcCallback, but the conversions
are were not necessarily trivial, and may be broken in one way or
another, so I wanted to address them separately.  In particular, the
use of mixin classes means that there could be cases where the version
declaration is being stepped on, so they need to be investigated more
closely.

Part of blueprint drop-rpc-compat.

Change-Id: I0977aee863d4fcc6a14a025215c6e41fe38a87f0
Drop test code copied from nova

Drop a couple of lines of test code that originated in nova and got
copied into Neutron.  These lines are meaningless in Neutron and can
be removed.

Change-Id: Ic7c174ba0671ddd4a9403b74fa42e7944fe74145
Fix a copy/pasted test mistake

Fix a minor test mistake that was copied around a few times.  In mock
setup, the intention was to only return a value of the rpc method used
was a 'call', not 'cast'.  Unfortunately, the variable checked was
method instead of rpc_method, so this expected return was always set
to None.

This also points out that what's being tested here isn't what *really*
was intended.  It ends up testing that the code returns what we mocked
it to return, which isn't all that useful.  However, at least with
this fix it's a bit more clear what it's trying to do.

Change-Id: I18e85aa66f83331318177d70cbae2468ff8bb57d
Merge "Moved out common testcases from test_type_vxlan.py"
Merge "ofagent: Remove obsolete bridge_mappings (agent side)"
Merge "Subnet delete for IPv6 SLAAC should not require prior port disassoc"
Fix a race condition adding a security group rule

setup_port_filters() needs to grab self.devices_to_refilter
before it calls prepare_devices_filter(), else it could skip
processing a device if an RPC arrives while it's processing
new devices.  That device will now be handled the next time
it's called.

Bug introduced in commit 3046c4ae22b1

Change-Id: Ib2f460cc095bbea8f9c767dcb9b4d4b66f1a7811
Closes-Bug: 1393925
Merge "Update i18n translation for neutron.api log msg's"