Ensure l3 agent receives notification about added router
Currently router_added (and other) notifications are sent
to agents with an RPC cast() method which does not ensure that
the message is actually delivered to the recipient.
If the message is lost (due to instability of messaging system
in some failover scenarios for example) neither server nor agent
will be aware of that and router will be "lost" till next agent
resync. Resync will only happen in case of errors on agent side
or restart.
The fix makes server use call() to notify agents about added routers
thus ensuring no routers will be lost.
This also unifies reschedule_router() method to avoid code duplication
between legacy and dvr agent schedulers.
Reviewed: https:/ /review. openstack. org/252852 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=1eb40b49f3d a95e7960860da10 33ee15932929ef
Committed: https:/
Submitter: Jenkins
Branch: stable/liberty
commit 1eb40b49f3da95e 7960860da1033ee 15932929ef
Author: Oleg Bondarev <email address hidden>
Date: Thu Dec 3 12:52:51 2015 +0300
Ensure l3 agent receives notification about added router
Currently router_added (and other) notifications are sent
to agents with an RPC cast() method which does not ensure that
the message is actually delivered to the recipient.
If the message is lost (due to instability of messaging system
in some failover scenarios for example) neither server nor agent
will be aware of that and router will be "lost" till next agent
resync. Resync will only happen in case of errors on agent side
or restart.
The fix makes server use call() to notify agents about added routers
thus ensuring no routers will be lost.
This also unifies reschedule_router() method to avoid code duplication
between legacy and dvr agent schedulers.
Closes-Bug: #1482630 47a28649d081a58 76797fe369e 665b2209d21ece8 05d8957aa5)
Related-Bug #1404743
Change-Id: Id08764ba837d8f
(cherry picked from commit 30b121dfa4d8542