File 0001-Do-state-report-after-setting-start-flag-on-OVS-restart.patch of Package openstack-neutron

diff -crB --new-file neutron-9.4.2.dev21-backup/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py neutron-9.4.2.dev21/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py
*** neutron-9.4.2.dev21-backup/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py	2019-02-27 11:59:35.208834341 -0800
--- neutron-9.4.2.dev21/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py	2019-02-28 12:01:43.435280470 -0800
***************
*** 1995,2000 ****
--- 1995,2003 ----
                      self.setup_tunnel_br_flows()
                      self.agent_state['start_flag'] = True
                      tunnel_sync = True
+                     # Force state report to avoid race condition
+                     # with l2pop fdb entries update
+                     self._report_state()
                  if self.enable_distributed_routing:
                      self.dvr_agent.reset_ovs_parameters(self.int_br,
                                                   self.tun_br,
diff -crB --new-file neutron-9.4.2.dev21-backup/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py neutron-9.4.2.dev21/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py
*** neutron-9.4.2.dev21-backup/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py	2019-02-27 11:59:35.208834341 -0800
--- neutron-9.4.2.dev21/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py	2019-02-28 12:05:45.451525095 -0800
***************
*** 1820,1826 ****
                      'setup_tunnel_br_flows') as setup_tunnel_br_flows,\
                  mock.patch.object(
                      self.mod_agent.OVSNeutronAgent,
!                     '_reset_tunnel_ofports') as reset_tunnel_ofports:
              log_exception.side_effect = Exception(
                  'Fake exception to get out of the loop')
              devices_not_ready = set()
--- 1820,1828 ----
                      'setup_tunnel_br_flows') as setup_tunnel_br_flows,\
                  mock.patch.object(
                      self.mod_agent.OVSNeutronAgent,
!                     '_reset_tunnel_ofports') as reset_tunnel_ofports,\
!                 mock.patch.object(self.agent.state_rpc,
!                                   'report_state') as report_st:
              log_exception.side_effect = Exception(
                  'Fake exception to get out of the loop')
              devices_not_ready = set()
***************
*** 1868,1874 ****
              self.assertTrue(setup_tunnel_br_flows.called)
              self.assertTrue(setup_tunnel_br.called)
              if self.agent.enable_tunneling:
!                 self.assertTrue(self.agent.agent_state.get('start_flag'))
  
      def test_ovs_status(self):
          self._test_ovs_status(constants.OVS_NORMAL,
--- 1870,1878 ----
              self.assertTrue(setup_tunnel_br_flows.called)
              self.assertTrue(setup_tunnel_br.called)
              if self.agent.enable_tunneling:
!                 self.agent.agent_state['start_flag'] = True
!                 report_st.assert_called_once_with(
!                     self.agent.context, self.agent.agent_state, True)
  
      def test_ovs_status(self):
          self._test_ovs_status(constants.OVS_NORMAL,
openSUSE Build Service is sponsored by