Merge "[OVN] Do not delete port's revision on RowNotFound"
This commit is contained in:
@@ -717,8 +717,10 @@ class OVNClient(object):
|
|||||||
def delete_port(self, context, port_id, port_object=None):
|
def delete_port(self, context, port_id, port_object=None):
|
||||||
try:
|
try:
|
||||||
self._delete_port(port_id, port_object=port_object)
|
self._delete_port(port_id, port_object=port_object)
|
||||||
except idlutils.RowNotFound:
|
except Exception as e:
|
||||||
pass
|
with excutils.save_and_reraise_exception():
|
||||||
|
LOG.error('Failed to delete port %(port)s. Error: '
|
||||||
|
'%(error)s', {'port': port_id, 'error': e})
|
||||||
db_rev.delete_revision(context, port_id, ovn_const.TYPE_PORTS)
|
db_rev.delete_revision(context, port_id, ovn_const.TYPE_PORTS)
|
||||||
|
|
||||||
def _create_or_update_floatingip(self, floatingip, txn=None):
|
def _create_or_update_floatingip(self, floatingip, txn=None):
|
||||||
|
@@ -780,6 +780,19 @@ class TestOVNMechanismDriver(test_plugin.Ml2PluginV2TestCase):
|
|||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1, self.nb_ovn.update_address_set.call_count)
|
1, self.nb_ovn.update_address_set.call_count)
|
||||||
|
|
||||||
|
@mock.patch.object(ovn_revision_numbers_db, 'delete_revision')
|
||||||
|
@mock.patch.object(ovn_client.OVNClient, '_delete_port')
|
||||||
|
def test_delete_port_exception_delete_revision(self, mock_del_port,
|
||||||
|
mock_del_rev):
|
||||||
|
mock_del_port.side_effect = Exception('BoOoOoOoOmmmmm!!!')
|
||||||
|
with self.network(set_context=True, tenant_id='test') as net:
|
||||||
|
with self.subnet(network=net) as subnet:
|
||||||
|
with self.port(subnet=subnet,
|
||||||
|
set_context=True, tenant_id='test') as port:
|
||||||
|
self._delete('ports', port['port']['id'])
|
||||||
|
# Assert that delete_revision wasn't invoked
|
||||||
|
mock_del_rev.assert_not_called()
|
||||||
|
|
||||||
def _test_set_port_status_up(self, is_compute_port=False):
|
def _test_set_port_status_up(self, is_compute_port=False):
|
||||||
port_device_owner = 'compute:nova' if is_compute_port else ''
|
port_device_owner = 'compute:nova' if is_compute_port else ''
|
||||||
self.mech_driver._plugin.nova_notifier = mock.Mock()
|
self.mech_driver._plugin.nova_notifier = mock.Mock()
|
||||||
|
Reference in New Issue
Block a user