Merge "Do not assume the existence of a trunk bridge since os-vif may have deleted it"
This commit is contained in:
@@ -450,8 +450,13 @@ class OVSDBHandler:
|
|||||||
:param subport_ids: subports affecting the metadata.
|
:param subport_ids: subports affecting the metadata.
|
||||||
:param wire: if True subport_ids are added, otherwise removed.
|
:param wire: if True subport_ids are added, otherwise removed.
|
||||||
"""
|
"""
|
||||||
trunk_bridge = trunk_bridge or ovs_lib.OVSBridge(
|
bridge_name = utils.gen_trunk_br_name(trunk_id)
|
||||||
utils.gen_trunk_br_name(trunk_id))
|
trunk_bridge = trunk_bridge or ovs_lib.OVSBridge(bridge_name)
|
||||||
|
if not trunk_bridge.bridge_exists(bridge_name):
|
||||||
|
LOG.info(
|
||||||
|
"Could not update trunk metadata in a non-existent bridge "
|
||||||
|
"(likely already deleted by nova/os-vif): %s", bridge_name)
|
||||||
|
return
|
||||||
port = port or self._get_parent_port(trunk_bridge)
|
port = port or self._get_parent_port(trunk_bridge)
|
||||||
_port_id, _trunk_id, old_subports = self._get_trunk_metadata(port)
|
_port_id, _trunk_id, old_subports = self._get_trunk_metadata(port)
|
||||||
if wire:
|
if wire:
|
||||||
|
@@ -336,3 +336,15 @@ class TestOVSDBHandler(base.BaseTestCase):
|
|||||||
expected_subport_ids = '["foo_subport_1"]'
|
expected_subport_ids = '["foo_subport_1"]'
|
||||||
self._test__update_trunk_metadata_wire_flag(
|
self._test__update_trunk_metadata_wire_flag(
|
||||||
mock_br, False, external_ids, subport_ids, expected_subport_ids)
|
mock_br, False, external_ids, subport_ids, expected_subport_ids)
|
||||||
|
|
||||||
|
@mock.patch('neutron.agent.common.ovs_lib.OVSBridge')
|
||||||
|
def test__update_trunk_metadata_no_tbr_no_raise(self, br):
|
||||||
|
mock_br = br.return_value
|
||||||
|
mock_br.configure_mock(**{'bridge_exists.return_value': False})
|
||||||
|
try:
|
||||||
|
self.ovsdb_handler._update_trunk_metadata(
|
||||||
|
mock_br, None, self.trunk_id, ['foo_subport_1'])
|
||||||
|
except RuntimeError:
|
||||||
|
self.fail(
|
||||||
|
"_update_trunk_metadata() should not raise RuntimeError "
|
||||||
|
"when the trunk bridge does not exist")
|
||||||
|
Reference in New Issue
Block a user