Merge "Handle deletion of tap device from bridge"
This commit is contained in:
@@ -269,6 +269,24 @@ class TestVifLBDriver(test.TestCase):
|
||||
run_as_root=True)
|
||||
mock_exec.assert_has_calls([call_ip, call_delif])
|
||||
|
||||
# Test unplug for the case where tap device
|
||||
# was not configured with the bridge.
|
||||
mock_exec.reset_mock()
|
||||
t1.reset_mock()
|
||||
mock_cna.reset_mock()
|
||||
mock_exec.side_effect = [None,
|
||||
exception.NovaException('Command error')]
|
||||
|
||||
# Call the unplug
|
||||
self.drv.unplug(vif)
|
||||
|
||||
# The trunks and the cna should have been deleted
|
||||
self.assertTrue(t1.delete.called)
|
||||
self.assertTrue(mock_cna.delete.called)
|
||||
|
||||
# Validate the execute
|
||||
mock_exec.assert_has_calls([call_ip, call_delif])
|
||||
|
||||
|
||||
class TestVifOvsDriver(test.TestCase):
|
||||
|
||||
|
||||
@@ -411,8 +411,15 @@ class PvmLBVifDriver(PvmLioVifDriver):
|
||||
|
||||
dev_name = self.get_trunk_dev_name(vif)
|
||||
utils.execute('ip', 'link', 'set', dev_name, 'down', run_as_root=True)
|
||||
utils.execute('brctl', 'delif', vif['network']['bridge'],
|
||||
dev_name, run_as_root=True)
|
||||
try:
|
||||
utils.execute('brctl', 'delif', vif['network']['bridge'],
|
||||
dev_name, run_as_root=True)
|
||||
except Exception as e:
|
||||
LOG.warning(_LW('Unable to delete device %(dev_name)s from bridge '
|
||||
'%(bridge)s. Error: %(error)s'),
|
||||
{'dev_name': dev_name,
|
||||
'bridge': vif['network']['bridge'],
|
||||
'error': e.message})
|
||||
for trunk in trunks:
|
||||
trunk.delete()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user