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)
|
ancillary_devices_not_to_retry)
|
||||||
return new_failed_devices_retries_map
|
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):
|
def rpc_loop(self, polling_manager=None):
|
||||||
if not polling_manager:
|
if not polling_manager:
|
||||||
polling_manager = polling.get_polling_manager(
|
polling_manager = polling.get_polling_manager(
|
||||||
|
@ -1983,34 +2012,8 @@ class OVSNeutronAgent(l2population_rpc.L2populationRpcCallBackTunnelMixin,
|
||||||
self.iter_num)
|
self.iter_num)
|
||||||
ovs_status = self.check_ovs_status()
|
ovs_status = self.check_ovs_status()
|
||||||
if ovs_status == constants.OVS_RESTARTED:
|
if ovs_status == constants.OVS_RESTARTED:
|
||||||
self.setup_integration_br()
|
self._handle_ovs_restart(polling_manager)
|
||||||
self.setup_physical_bridges(self.bridge_mappings)
|
tunnel_sync = self.enable_tunneling or tunnel_sync
|
||||||
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()
|
|
||||||
elif ovs_status == constants.OVS_DEAD:
|
elif ovs_status == constants.OVS_DEAD:
|
||||||
# Agent doesn't apply any operations when ovs is dead, to
|
# Agent doesn't apply any operations when ovs is dead, to
|
||||||
# prevent unexpected failure or crash. Sleep and continue
|
# prevent unexpected failure or crash. Sleep and continue
|
||||||
|
|
Loading…
Reference in New Issue