Merge "[OVN] Allow only one physical network per bridge" into stable/ussuri
This commit is contained in:
commit
69d4cb6243
|
@ -793,8 +793,7 @@ class OvsdbSbOvnIdl(sb_impl_idl.OvnSbApiIdlImpl, Backend):
|
||||||
|
|
||||||
def _get_chassis_physnets(self, chassis):
|
def _get_chassis_physnets(self, chassis):
|
||||||
bridge_mappings = chassis.external_ids.get('ovn-bridge-mappings', '')
|
bridge_mappings = chassis.external_ids.get('ovn-bridge-mappings', '')
|
||||||
mapping_dict = helpers.parse_mappings(bridge_mappings.split(','),
|
mapping_dict = helpers.parse_mappings(bridge_mappings.split(','))
|
||||||
unique_values=False)
|
|
||||||
return list(mapping_dict.keys())
|
return list(mapping_dict.keys())
|
||||||
|
|
||||||
def chassis_exists(self, hostname):
|
def chassis_exists(self, hostname):
|
||||||
|
|
|
@ -137,8 +137,7 @@ class ChassisEvent(row_event.RowEvent):
|
||||||
phy_nets = []
|
phy_nets = []
|
||||||
if event != self.ROW_DELETE:
|
if event != self.ROW_DELETE:
|
||||||
bridge_mappings = row.external_ids.get('ovn-bridge-mappings', '')
|
bridge_mappings = row.external_ids.get('ovn-bridge-mappings', '')
|
||||||
mapping_dict = helpers.parse_mappings(bridge_mappings.split(','),
|
mapping_dict = helpers.parse_mappings(bridge_mappings.split(','))
|
||||||
unique_values=False)
|
|
||||||
phy_nets = list(mapping_dict)
|
phy_nets = list(mapping_dict)
|
||||||
|
|
||||||
self.driver.update_segment_host_mapping(host, phy_nets)
|
self.driver.update_segment_host_mapping(host, phy_nets)
|
||||||
|
|
|
@ -36,7 +36,7 @@ class TestSbApi(base.FunctionalTestCase,
|
||||||
{'external_ids': {'ovn-bridge-mappings':
|
{'external_ids': {'ovn-bridge-mappings':
|
||||||
'public:br-ex,private:br-0'}},
|
'public:br-ex,private:br-0'}},
|
||||||
{'external_ids': {'ovn-bridge-mappings':
|
{'external_ids': {'ovn-bridge-mappings':
|
||||||
'public:br-ex,public2:br-ex'}},
|
'public:br-ex,public2:br-ex2'}},
|
||||||
{'external_ids': {'ovn-bridge-mappings':
|
{'external_ids': {'ovn-bridge-mappings':
|
||||||
'public:br-ex'}},
|
'public:br-ex'}},
|
||||||
]
|
]
|
||||||
|
@ -86,6 +86,15 @@ class TestSbApi(base.FunctionalTestCase,
|
||||||
self.assertGreaterEqual(set(mapping.keys()),
|
self.assertGreaterEqual(set(mapping.keys()),
|
||||||
{c['name'] for c in self.data['chassis']})
|
{c['name'] for c in self.data['chassis']})
|
||||||
|
|
||||||
|
def test_multiple_physnets_in_one_bridge(self):
|
||||||
|
self.data = {
|
||||||
|
'chassis': [
|
||||||
|
{'external_ids': {'ovn-bridge-mappings': 'p1:br-ex,p2:br-ex'}}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
self.load_test_data()
|
||||||
|
self.assertRaises(ValueError, self.api.get_chassis_and_physnets)
|
||||||
|
|
||||||
def _add_switch_port(self, chassis_name, type='localport'):
|
def _add_switch_port(self, chassis_name, type='localport'):
|
||||||
sname, pname = (utils.get_rand_device_name(prefix=p)
|
sname, pname = (utils.get_rand_device_name(prefix=p)
|
||||||
for p in ('switch', 'port'))
|
for p in ('switch', 'port'))
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
other:
|
||||||
|
- |
|
||||||
|
OVN mechanism driver allows only to have one physical network per bridge.
|
Loading…
Reference in New Issue