Merge "Skip reporting status for HA backup routers"
This commit is contained in:
commit
f9e9712dca
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue