From 426a5b2833966569da39f3ef9a38ba2f451da687 Mon Sep 17 00:00:00 2001 From: LIU Yulong Date: Wed, 22 May 2019 22:38:40 +0800 Subject: [PATCH] Adjust some HA router log In case router is concurrently deleted, so the HA state change LOG is not necessary. It sometimes makes us confusing. Also print the log for the pid of router keepalived-state-change child process. Change-Id: Id57dd787c254994af967db17647a3a28925714da Related-Bug: #1798475 --- neutron/agent/l3/ha.py | 10 ++++++---- neutron/agent/l3/ha_router.py | 4 ++++ neutron/tests/unit/agent/l3/test_agent.py | 4 +++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/neutron/agent/l3/ha.py b/neutron/agent/l3/ha.py index bdd6abd59ed..d57d7991d83 100644 --- a/neutron/agent/l3/ha.py +++ b/neutron/agent/l3/ha.py @@ -113,14 +113,16 @@ class AgentMixin(object): return self.conf.ha_vrrp_advert_int def enqueue_state_change(self, router_id, state): - state_change_data = {"router_id": router_id, "state": state} - LOG.info('Router %(router_id)s transitioned to %(state)s', - state_change_data) - ri = self._get_router_info(router_id) if ri is None: return + state_change_data = {"router_id": router_id, "state": state, + "host": ri.agent.host} + LOG.info('Router %(router_id)s transitioned to %(state)s on ' + 'agent %(host)s', + state_change_data) + # TODO(dalvarez): Fix bug 1677279 by moving the IPv6 parameters # configuration to keepalived-state-change in order to remove the # dependency that currently exists on l3-agent running for the IPv6 diff --git a/neutron/agent/l3/ha_router.py b/neutron/agent/l3/ha_router.py index a748c6c355d..aca1e2116f9 100644 --- a/neutron/agent/l3/ha_router.py +++ b/neutron/agent/l3/ha_router.py @@ -394,6 +394,10 @@ class HaRouter(router.RouterInfo): pm.enable() process_monitor.register( self.router_id, IP_MONITOR_PROCESS_SERVICE, pm) + LOG.debug("Router %(router_id)s %(process)s pid %(pid)d", + {"router_id": self.router_id, + "process": KEEPALIVED_STATE_CHANGE_MONITOR_SERVICE_NAME, + "pid": pm.pid}) def destroy_state_change_monitor(self, process_monitor): if not self.ha_port: diff --git a/neutron/tests/unit/agent/l3/test_agent.py b/neutron/tests/unit/agent/l3/test_agent.py index 32e56ea4d16..77dcfd5ac5f 100644 --- a/neutron/tests/unit/agent/l3/test_agent.py +++ b/neutron/tests/unit/agent/l3/test_agent.py @@ -243,12 +243,14 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework): agent = l3_agent.L3NATAgent(HOSTNAME, self.conf) router = mock.Mock() router_info = mock.MagicMock() + router_info.agent = agent agent.router_info[router.id] = router_info agent.l3_ext_manager.ha_state_change = mock.Mock() agent.enqueue_state_change(router.id, 'master') agent.l3_ext_manager.ha_state_change.assert_called_once_with( agent.context, - {'router_id': router.id, 'state': 'master'}) + {'router_id': router.id, 'state': 'master', + 'host': agent.host}) def test_enqueue_state_change_router_active_ha(self): agent = l3_agent.L3NATAgent(HOSTNAME, self.conf)