Merge "Raise proper exception in case of vif plug errors"

This commit is contained in:
Zuul 2017-12-06 13:02:08 +00:00 committed by Gerrit Code Review
commit f99f448ee4
2 changed files with 18 additions and 1 deletions

View File

@ -1021,7 +1021,12 @@ class VMOps(object):
def plug_vifs(self, instance, network_info):
if network_info:
for vif in network_info:
self._vif_driver.plug(instance, vif)
try:
self._vif_driver.plug(instance, vif)
except Exception as exc:
LOG.exception("Failed to plug vif: '%s'.",
vif, instance=instance)
raise exception.VirtualInterfacePlugException(exc)
def unplug_vifs(self, instance, network_info):
if network_info:

View File

@ -1611,6 +1611,18 @@ class VMOpsTestCase(test_base.HyperVBaseTestCase):
network_info=mock_network_info)
self._vmops._vif_driver.plug.assert_has_calls(calls)
def test_plug_vifs_failed(self):
mock_instance = fake_instance.fake_instance_obj(self.context)
fake_vif1 = {'id': mock.sentinel.ID1,
'type': mock.sentinel.vif_type1}
mock_network_info = [fake_vif1]
self._vmops._vif_driver.plug.side_effect = exception.NovaException
self.assertRaises(exception.VirtualInterfacePlugException,
self._vmops.plug_vifs,
mock_instance, mock_network_info)
def test_unplug_vifs(self):
mock_instance = fake_instance.fake_instance_obj(self.context)
fake_vif1 = {'id': mock.sentinel.ID1,