"keepalived_state_change" needs to use threading to send arping
"keepalived_state_change" monitor does not use eventlet but normal
Python threads. When "send_ip_addr_adv_notif" is called from inside
the monitor, the arping command is never sent because the eventlet
thread does not start. In order to be able to be called from this
process, this method should also have an alternative implementation
using "threading".
"TestMonitorDaemon.test_new_fip_sends_garp" is also modified to
actually test the GARP sent. The test was originally implemented with
only one interface in the monitored namespace.
"keepalived_state_change" sends a GARP when a new IP address is added
in a interface other than the monitored one. That's why this patch
creates a new interface and sets it as the monitor interface. When
a new IP address is added to the other interface, the monitor populates
it by sending a GARP through the modified interface [1].
Reviewed: https:/ /review. opendev. org/716944 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=21935365f29 cce3fa95f032d97 78786519461521
Committed: https:/
Submitter: Zuul
Branch: master
commit 21935365f29cce3 fa95f032d977878 6519461521
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Thu Apr 2 11:00:35 2020 +0000
"keepalived _state_ change" needs to use threading to send arping
"keepalived _state_ change" monitor does not use eventlet but normal addr_adv_ notif" is called from inside
Python threads. When "send_ip_
the monitor, the arping command is never sent because the eventlet
thread does not start. In order to be able to be called from this
process, this method should also have an alternative implementation
using "threading".
"TestMonito rDaemon. test_new_ fip_sends_ garp" is also modified to _state_ change" sends a GARP when a new IP address is added
actually test the GARP sent. The test was originally implemented with
only one interface in the monitored namespace.
"keepalived
in a interface other than the monitored one. That's why this patch
creates a new interface and sets it as the monitor interface. When
a new IP address is added to the other interface, the monitor populates
it by sending a GARP through the modified interface [1].
[1] https:/ /github. com/openstack/ neutron/ blob/8ee34655b8 757086c03feecfd a100333f47ed810 /neutron/ agent/l3/ keepalived_ state_change. py#L90
Change-Id: Ib69e21b4645cef 71db07595019fac 9af77fefaa1
Closes-Bug: #1870313