Reduce code duplication in test_linux_dhcp

This patch reduces duplication in test_output_opts_file_*()

Change-Id: Ie68b26a48c1d0ed9cb8e584a7284c06688937cf9
Closes-Bug: #1352870
Fix IPv6 RA security group rule for DVR

Current IPv6 RA security group rule doesn't work for
DVR because the code only allows RA from device_owner
is network:router_interface. When DVR is enabled, the
router interface is network:router_interface_distributed.

This fix fixes the RA rule to allow RA from DVR router
interface, so router advertisement from DVR RADVD can
pass to VM.

Co-Authored-By: Baodong (Robert) Li <baoli@cisco.com>

Change-Id: Idd1324c653dcb15f5dacf2d897a7048bca22fc38
Partial-Bug: 1376325
Refactor process_router method in L3 agent

Refactors the process_router method of the L3NATAgent class to several methods
that coherently group functionallity. The aim is to make the code more readable
and maintainable. There is no functional change in this patch.

Partially-Implements: bp restructure-l3-agent

Change-Id: Id35a5f10cd7d2dda565bffb14fc6a2fbd7eef3ea
Fix race condition in ProcessMonitor

If any new external process was enabled/disabled during
the process monitoring loop time, a RuntimeError: dictionary
changed size during iteration was thrown. This is fixed
by pre-building the service list from the dictionary
for the iteration.

Closes-Bug: #1401042

Change-Id: Id0a3af22fb85992bde35d8c691bee3ddf435639d
Not nova but neutron

The docstring for topic is not correct.

Change-Id: I6174453eb1c41c398ecffbab59c45b0678637672
Catch duplicate errors scheduling SNAT service

Catch DBDuplicateEntry errors when scheduling SNAT to
a service node to prevent harmless tracebacks in the log.
These can occur if scheduling occurs concurrently,
so they are safe to ignore.

Closes-Bug: #1381958
Change-Id: If242b04b372609f640f3ce88f4245c17a45bf69d
Imported Translations from Transifex

For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure

Change-Id: I18f00383ecae68436a9208f094a898849bfed8a2
Separate wait_until to standalone function

It makes wait_until more usable outside of unittest.TestCase classes.
Part of this patch is renaming pinger module to helpers thus we can have
helpers module with useful utilities for testing.

Change-Id: Ie8e4854c23aa3739b0df618db1b3944466d64bd2
Related-Bug: 1243216
Merge "Catch duplicate errors scheduling SNAT service"
Generate testr_results.html for neutron functional job

Tweak job post_test_hook script to generate testr results
the same way other jobs do, with a pretty html view that
is easy to digest and navigate.

Closes-bug: #1401340

Change-Id: Ib355f34917580b88bda3d550e33fc630a8e7120b
Merge "Fix IPv6 RA security group rule for DVR"
Merge "Generate testr_results.html for neutron functional job"
Merge "Refactor process_router method in L3 agent"
Merge "Reduce code duplication in test_linux_dhcp"
Merge "Imported Translations from Transifex"
Merge "Separate wait_until to standalone function"
Merge "Not nova but neutron"
Merge "Fix race condition in ProcessMonitor"