We rely on keepalived to send gratuitous ARPs when floating IP is added.
Older versions of keepalived up to 1.2.20 (exclusive) contain bug [1] where
keepalived does not send GARP on receiving SIGHUP. Unfortunately, newer
versions containing the fix are not packaged yet for some distributions
like RHEL or CentOS or Ubuntu Xenial, so this patch adds a workaround for
such distributions until new packages are available.
The patch also sets net.ipv4.ip_nonlocal_bind kernel parameter to 0 for
Snat and HA router namespaces in order to avoid sending gratuitous ARPs
for IP addresses that are not bound to the interface anymore - possibly
because of failover or removal. Note that kernel < 3.19 contain a bug
where this knob is missing. In case it attempts to set the parameter and
it's missing on the system, it doesn't set the knob in root
namespace like it's done for fip namespaces, but only issues a warning
message.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1391553
Change-Id: Ieab53624dc34dc687a0e8eebd84778f7fc95dd77
Closes-bug: 1639315
OVO object create() raises exception NeutronDbObjectDuplicateEntry
on seeing duplicate entries which should be handled by retrying the
transaction.
Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db
Closes-Bug: #1627811
Change-Id: I2b311326c2caa7500aa9318d0b5bf753cf0eb543
This allows us to configure neutron when running the rally job in
the gate. This effort stems from patch [1]. Blame Kevin for not
wanting to squash the two together.
[1] I12aaf6121b677e9696131601b3539a7091e2858c
Change-Id: I006957784ac7900021bcfee57cbc83b5a6c533c4
Subprojects have had enough time to switch to neutron-lib for
the deprecated items from these modules.
Change-Id: Ib2f4acf7e0153667389c57a52f2db33a23758b24
An interface's name is limited to INTERFACE_MAX_SIZE. In some cases, IP
utils truncate this name automatically. In Ubuntu Xenial, ip link
returns an error instead of this behaviour.
This change truncates the device's name upon read (The full name is
still stored on the object). This way, the code does not rely on IP
utils to do the truncation. This solves the error in the test.
Change-Id: I41b226e4b52239b861e2b6e806296025502b9b60
Closes-Bug: 1637993
'refresh_dhcp_helper', which is called after subnet update/create
notifications in the DHCP agent, can end up retrieving ports that
the agent hadn't yet seen. It will then configure those ports but
not notify the server that they are ready.
Unless the port is subsequently updated on the server afterwards to
generate a new port update notification, the DHCP agent won't ever tell
the server that the port has had DHCP provisioned. This led to the
bug this closes. Another patch[1] that removed excessive DHCP ready
notifications uncovered this bug.
This patch just adjusts refresh_dhcp_helper to ensure that all ports
are marked as ready after configuring them all.
1. Ie7686837b18ff251baa315ef95dc511cda475672
Change-Id: I1fed60c1835c2ebed7c050c6fa114f89beec3190
Closes-Bug: #1639806
Previously, the function consumed a config object and picked only a
single option send_arp_for_ha from that object. This patch replaces the
config object with count itself in order to be able to send gratuitous
ARPs not relying on a single config option.
As per http://codesearch.openstack.org, this function is not called in
any other stadium project. The send_arp_for_ha option is deprecated as
for Ocata.
Related-bug: 1639315
Change-Id: I6efc539a969bebb4fd969e1648a787bf7dc9cd0b
wait_until_true is moved to neutron.common.utils
It was marked for removal in Ib8b0e51dbd9edaa58391774d428a737836dfdf77
Change-Id: I9efbbc237acbcebbb36ff239ec234b25abacccae
Change Ia8d91a1704c894bc1f6cf14e6cdd971fab255b62 moved function
import_modules_recursively from neutron.tests.tools to
neutron.common.utils
Please use appropriate function path.
Change-Id: I7a178ceff5bbc4b6f45cfc040232148090bce135
Related-Bug: #1612959
The release includes its own check for delayed string interpolation for
log messages, so we can now remove our own check for the same thing. The
check is off-by-default, so we need to explicitly enable it. Sadly,
select= directive in tox.ini is broken [1] so we need to enable the
check with flake8 argument instead.
[1] https://github.com/PyCQA/pycodestyle/issues/390
Change-Id: Idc6b8e5b1cb594e130d4cc0cbcfffd362f9ab86a
This patch introduces context in methods where it is needed for
object operations done during the integration of Router Extra
Attributes OVO.
Used in integration patch: https://review.openstack.org/#/c/381209/
Change-Id: I4dea67207220a19abf5d3cc754f02150b3621550
Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db
Change I6f0d108fc00cc7fcfaac1bd8f1b0468fcfbaa0dd deprecated
dispose_pool(). Instead of this context_manager.dispose_pool() can be
used.
Change-Id: I532e37b42f399ab6ca536f360772b1ccbcfb818a
Converters and Validators were moved to neutron_lib in change
I6b9079e9e703c6fd75adbed3846e7257685433e8
Change-Id: I37c1e2ee1634a7fb72c401caee9122dadd669a64
This function was deprecated in change
Id38c06aee428200a061c59a984b59b81b24056e3
get_engine() can be called directly with
context_manager.get_legacy_facade().get_engine()
Change-Id: I7ef45c7ced65a3a3746e616c7b796a34b3551d3c
Related-bug: #1520719
Function paginate_query was deprecated in change
Ie7da16b94fa2023c9c3d84d96d55f33d0f76903f
Use paginate_query from oslo.db but note that the arguments differ.
Change-Id: I00ac065758f0819f98fc52e0cd1e66aaf814aa57
It puzzles me why we would want to have it configurable. Having it = 0
is just plain bad (it breaks a floating IP roaming around HA routers),
having it = 1 may be unsafe if clients miss the update, having it more
than 3 (the default) is probably wasteful. That makes me think that
maybe we should not have it in the first place.
The patch that introduced the option also introduced the feature itself,
and does not provide any clue around why we would need it:
I125dbc57b90027dc5e99ff0a5d6877843a0b02a5
Maybe the option is in the tree because, in Assaf Muller's words, "we're
a bunch of lazy developers that like to shift the responsibility to our
poor users that have to deal with thousands of configuration options".
I suggest we just move with deprecation and removal here.
Change-Id: I9d12b8f4c25ddf91312153f236915c0c14302e2d
Related-Bug: #1639879
This code is not being used outside neutron tree so it's
safe to change the api to use context instead of session.
This change is required for implementing Ipam OVO and is
consistent with rest of the DB API code in neutron.
Change-Id: I600ce4384632bf013846e8aa1618acb126f7c598
Partially-Implements: blueprint adopt-oslo-versioned-objects-for-db
New fullstack test is added to check if packets which
should be sent from port with DSCP mark set are really
sent to another port with this DSCP mark.
This test uses IPv4 only.
Change-Id: I4b26c3c644eb6f2f7813658c99d16fbc3cc61e06
Closes-Bug: #1625570
Commit 2823c2e569776b023f889af8d2bd22c2453950f1 added the
deprecation warning but no one uses the code. So the unused code is
deleted.
Change-Id: I22d96182a7c88f725d19559c25f1820a8fb176f2
Make use of the file utility replace_file from neutron-lib.
The utility replace_file in neutron is marked as deprecated.
Change-Id: I7e3ed10a22012be9511e43e4dc3bf73076b2954e