L3 agent: use run_immediately parameter to sync after start

Explicit call to periodic resync after start may lead to
double syncing. See bug for details.

Closes-Bug: #1505282
Change-Id: Ib5e481d579039b2c3e87d4f12cad1241d02fe060
This commit is contained in:
Oleg Bondarev 2015-10-12 18:59:55 +03:00
parent 090fe71359
commit cbc268e839
2 changed files with 1 additions and 14 deletions

View File

@ -524,7 +524,7 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback,
# NOTE(kevinbenton): this is set to 1 second because the actual interval
# is controlled by a FixedIntervalLoopingCall in neutron/service.py that
# is responsible for task execution.
@periodic_task.periodic_task(spacing=1)
@periodic_task.periodic_task(spacing=1, run_immediately=True)
def periodic_sync_routers_task(self, context):
self.process_services_sync(context)
if not self.fullsync:
@ -597,8 +597,6 @@ class L3NATAgent(firewall_l3_agent.FWaaSL3AgentRpcCallback,
# L3NATAgent.
eventlet.spawn_n(self._process_routers_loop)
LOG.info(_LI("L3 agent started"))
# When L3 agent is ready, we immediately do a full sync
self.periodic_sync_routers_task(self.context)
def create_pd_router_update(self):
router_id = None
@ -678,9 +676,6 @@ class L3NATAgentWithStateReport(L3NATAgent):
# Do the report state before we do the first full sync.
self._report_state()
# When L3 agent is ready, we immediately do a full sync
self.periodic_sync_routers_task(self.context)
self.pd.after_start()
def agent_updated(self, context, payload):

View File

@ -186,14 +186,6 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
agent.context)
self.assertTrue(agent.fullsync)
def test_l3_initial_full_sync_done(self):
with mock.patch.object(l3_agent.L3NATAgent,
'periodic_sync_routers_task') as router_sync:
with mock.patch.object(eventlet, 'spawn_n'):
agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)
agent.after_start()
router_sync.assert_called_once_with(agent.context)
def test_l3_initial_report_state_done(self):
with mock.patch.object(l3_agent.L3NATAgentWithStateReport,
'periodic_sync_routers_task'),\