neutron/neutron/tests/unit/agent
Assaf Muller 9bae3b1832 Replace keepalived notifier bash script with Python ip monitor
Previously L3 HA generated a bash script and copied it to a per-router
configuration directory that was visible to that router's keepalived
instance. This patch changes the in-line generated Bash script to a
Python script that can be maintained in the repository.
The bash script was used as a keepalived notifier script, that was invoked
by keepalived whenever a state transition occured. These notifier scripts
may be invoked by keepalived out of order in case it transitions quickly
twice. For example, if the master failed and two slaves fight for the new
master role. One will transition to master, and the other will often
transition to master and then immidiately back to standby. In this case,
the transition scripts were often fired out of order, resulting in the
wrong state being reported.

The proposed approach is to get rid of the keepalived notifier scripts
entirely. Instead, monitor IP changes on the HA device. If the omnipresent
IP address was configured on the HA device, it means that we're looking
at a master instance. If it was deleted, the router transition to standby
or fault.

In order to keep the L3 agent CPU usage down, it will spawn a process
per HA router. That process will start the ip address monitor.
Whenever it gets an IP address change event, it will notify the L3 agent
via a unix domain socket.

Partially-Implements: blueprint report-ha-router-master
Change-Id: I2022bced330d5f108fbedd40548a901225d7ea1c
Closes-Bug: #1402010
Closes-Bug: #1367705
2015-03-18 18:59:33 -04:00
..
l3 Move internal port processing to router classes 2015-03-13 14:39:53 +00:00
linux Replace keepalived notifier bash script with Python ip monitor 2015-03-18 18:59:33 -04:00
metadata Replace keepalived notifier bash script with Python ip monitor 2015-03-18 18:59:33 -04:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
l2population_rpc_base.py l2population_rpc: Make fdb_add_tun/fdb_remove_tun more flexible 2015-02-23 10:35:15 +09:00
test_dvr_fip_ns.py Refactor management of namespaces in the L3 Agent 2015-03-04 21:28:23 +00:00
test_l2population_rpc.py l2population_rpc: Make fdb_add_tun/fdb_remove_tun more flexible 2015-02-23 10:35:15 +09:00
test_l3_event_observers.py Change L3 agent AdvancedService class to be non-singleton 2015-02-25 19:09:27 -05:00