ovs: split OVS_RESTARTED handler into a separate method
Change-Id: If535cad87369980010ef0111d5416d22db707cfe Related-Bug: #1731494
This commit is contained in:
parent
c16d15fff2
commit
164e456394
|
@ -1954,6 +1954,35 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
|
|||
ancillary_devices_not_to_retry)
|
||||
return new_failed_devices_retries_map
|
||||
|
||||
def _handle_ovs_restart(self, polling_manager):
|
||||
self.setup_integration_br()
|
||||
self.setup_physical_bridges(self.bridge_mappings)
|
||||
if self.enable_tunneling:
|
||||
self._reset_tunnel_ofports()
|
||||
self.setup_tunnel_br()
|
||||
self.setup_tunnel_br_flows()
|
||||
if self.enable_distributed_routing:
|
||||
self.dvr_agent.reset_ovs_parameters(self.int_br,
|
||||
self.tun_br,
|
||||
self.patch_int_ofport,
|
||||
self.patch_tun_ofport)
|
||||
self.dvr_agent.reset_dvr_parameters()
|
||||
self.dvr_agent.setup_dvr_flows()
|
||||
# notify that OVS has restarted
|
||||
registry.notify(
|
||||
callback_resources.AGENT,
|
||||
callback_events.OVS_RESTARTED,
|
||||
self)
|
||||
# restart the polling manager so that it will signal as added
|
||||
# all the current ports
|
||||
# REVISIT (rossella_s) Define a method "reset" in
|
||||
# BasePollingManager that will be implemented by AlwaysPoll as
|
||||
# no action and by InterfacePollingMinimizer as start/stop
|
||||
if isinstance(
|
||||
polling_manager, polling.InterfacePollingMinimizer):
|
||||
polling_manager.stop()
|
||||
polling_manager.start()
|
||||
|
||||
def rpc_loop(self, polling_manager=None):
|
||||
if not polling_manager:
|
||||
polling_manager = polling.get_polling_manager(
|
||||
|
@ -1983,34 +2012,8 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
|
|||
self.iter_num)
|
||||
ovs_status = self.check_ovs_status()
|
||||
if ovs_status == constants.OVS_RESTARTED:
|
||||
self.setup_integration_br()
|
||||
self.setup_physical_bridges(self.bridge_mappings)
|
||||
if self.enable_tunneling:
|
||||
self._reset_tunnel_ofports()
|
||||
self.setup_tunnel_br()
|
||||
self.setup_tunnel_br_flows()
|
||||
tunnel_sync = True
|
||||
if self.enable_distributed_routing:
|
||||
self.dvr_agent.reset_ovs_parameters(self.int_br,
|
||||
self.tun_br,
|
||||
self.patch_int_ofport,
|
||||
self.patch_tun_ofport)
|
||||
self.dvr_agent.reset_dvr_parameters()
|
||||
self.dvr_agent.setup_dvr_flows()
|
||||
# notify that OVS has restarted
|
||||
registry.notify(
|
||||
callback_resources.AGENT,
|
||||
callback_events.OVS_RESTARTED,
|
||||
self)
|
||||
# restart the polling manager so that it will signal as added
|
||||
# all the current ports
|
||||
# REVISIT (rossella_s) Define a method "reset" in
|
||||
# BasePollingManager that will be implemented by AlwaysPoll as
|
||||
# no action and by InterfacePollingMinimizer as start/stop
|
||||
if isinstance(
|
||||
polling_manager, polling.InterfacePollingMinimizer):
|
||||
polling_manager.stop()
|
||||
polling_manager.start()
|
||||
self._handle_ovs_restart(polling_manager)
|
||||
tunnel_sync = self.enable_tunneling or tunnel_sync
|
||||
elif ovs_status == constants.OVS_DEAD:
|
||||
# Agent doesn't apply any operations when ovs is dead, to
|
||||
# prevent unexpected failure or crash. Sleep and continue
|
||||
|
|
Loading…
Reference in New Issue