Merge "Skip reporting status for HA backup routers"

This commit is contained in:
Zuul 2019-04-23 20:16:44 +00:00 committed by Gerrit Code Review
commit f9e9712dca
2 changed files with 28 additions and 1 deletions

View File

@ -1061,7 +1061,13 @@ class IPsecDriver(device_drivers.DeviceDriver):
@log_helpers.log_method_call
def report_status(self, context):
status_changed_vpn_services = []
for process in self.processes.values():
for process_id, process in self.processes.items():
# NOTE(mnaser): It's not necessary to check status for processes
# of a backup L3 agent
router = self.routers.get(process_id)
if router and router.router['ha'] and router.ha_state == 'backup':
LOG.debug("%s router in backup state, skipping", process_id)
continue
if not self.should_be_reported(context, process):
continue
previous_status = self.get_process_status_cache(process)

View File

@ -933,6 +933,27 @@ class IPSecDeviceDVR(BaseIPsecDeviceDriver):
router.snat_iptables_manager.apply = self.apply_mock
self.driver.routers[FAKE_ROUTER_ID] = router
def test_sync_dvr(self):
fake_vpn_service = FAKE_VPN_SERVICE
self.driver.agent_rpc.get_vpn_services_on_host.return_value = [
fake_vpn_service]
context = mock.Mock()
self.driver._sync_vpn_processes = mock.Mock()
self.driver._delete_vpn_processes = mock.Mock()
self.driver._cleanup_stale_vpn_processes = mock.Mock()
sync_routers = [{'id': fake_vpn_service['router_id']}]
sync_router_ids = [fake_vpn_service['router_id']]
with mock.patch.object(self.driver,
'get_process_status_cache') as process_status:
self.driver.sync(context, sync_routers)
self.driver._sync_vpn_processes.assert_called_once_with(
[fake_vpn_service], sync_router_ids)
self.driver._delete_vpn_processes.assert_called_once_with(
sync_router_ids, sync_router_ids)
self.driver._cleanup_stale_vpn_processes.assert_called_once_with(
sync_router_ids)
self.assertEqual(0, process_status.call_count)
def test_get_namespace_for_dvr_edge_router(self):
namespace = self.driver.get_namespace(FAKE_ROUTER_ID)
self.assertEqual('snat-' + FAKE_ROUTER_ID, namespace)