Revert "Revert "ovs-agent: Ensure integration bridge is created""

This reverts commit ccaad827b2bdcdcf4b538c5d5367f14cfc22c08f
that reverted e5cdad90f97d3a54a493eca19e7a3ff643426de1, which
was not the real cause of the problem the revert intended to fix.
Once this patch is back, change-id
I6381e3fee49910127c420dd2e3205c64cdb9e185 should fix the actual bug.

Change-Id: I4116bbb61aaf279d6d63a474134d47d97fe806f7
This commit is contained in:
Kevin Benton 2014-06-18 23:39:30 -07:00
parent f1f841d772
commit 197973f6c6
3 changed files with 12 additions and 3 deletions

View File

@ -178,11 +178,11 @@ class OVSNeutronAgent(n_rpc.RpcCallback,
self.int_br_device_count = 0
self.int_br = ovs_lib.OVSBridge(integ_br, self.root_helper)
self.setup_integration_br()
self.int_br.set_secure_mode()
# Stores port update notifications for processing in main rpc loop
self.updated_ports = set()
self.setup_rpc()
self.setup_integration_br()
self.bridge_mappings = bridge_mappings
self.setup_physical_bridges(self.bridge_mappings)
self.local_vlan_map = {}
@ -723,6 +723,12 @@ class OVSNeutronAgent(n_rpc.RpcCallback,
:param bridge_name: the name of the integration bridge.
:returns: the integration bridge
'''
# Ensure the integration bridge is created.
# ovs_lib.OVSBridge.create() will run
# ovs-vsctl -- --may-exist add-br BRIDGE_NAME
# which does nothing if bridge already exists.
self.int_br.create()
self.int_br.delete_port(cfg.CONF.OVS.int_peer_patch_port)
self.int_br.remove_all_flows()
# switch all traffic using L2 learning

View File

@ -116,6 +116,8 @@ class TestOvsNeutronAgent(base.BaseTestCase):
mock.patch('neutron.plugins.openvswitch.agent.ovs_neutron_agent.'
'OVSNeutronAgent.setup_ancillary_bridges',
return_value=[]),
mock.patch('neutron.agent.linux.ovs_lib.OVSBridge.'
'create'),
mock.patch('neutron.agent.linux.ovs_lib.OVSBridge.'
'set_secure_mode'),
mock.patch('neutron.agent.linux.ovs_lib.OVSBridge.'

View File

@ -106,12 +106,13 @@ class TunnelTest(base.BaseTestCase):
self.mock_int_bridge = self.ovs_bridges[self.INT_BRIDGE]
self.mock_int_bridge_expected = [
mock.call.set_secure_mode(),
mock.call.create(),
mock.call.delete_port('patch-tun'),
mock.call.remove_all_flows(),
mock.call.add_flow(priority=1, actions='normal'),
mock.call.add_flow(priority=0, table=constants.CANARY_TABLE,
actions='drop')
actions='drop'),
mock.call.set_secure_mode(),
]
self.mock_map_tun_bridge = self.ovs_bridges[self.MAP_TUN_BRIDGE]