summaryrefslogtreecommitdiff
path: root/nova/tests/unit/compute/test_compute_api.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/tests/unit/compute/test_compute_api.py')
-rw-r--r--nova/tests/unit/compute/test_compute_api.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/nova/tests/unit/compute/test_compute_api.py b/nova/tests/unit/compute/test_compute_api.py
index 2735d30ebf..3afd9e959d 100644
--- a/nova/tests/unit/compute/test_compute_api.py
+++ b/nova/tests/unit/compute/test_compute_api.py
@@ -19,6 +19,7 @@ import datetime
import iso8601
import mock
from mox3 import mox
+from oslo_messaging import exceptions as oslo_exceptions
from oslo_policy import policy as oslo_policy
from oslo_serialization import jsonutils
from oslo_utils import fixture as utils_fixture
@@ -1872,6 +1873,30 @@ class _ComputeAPIUnitTestMixIn(object):
instance = self._create_instance_obj(params=paused_state)
self._live_migrate_instance(instance)
+ @mock.patch.object(compute_utils, 'add_instance_fault_from_exc')
+ @mock.patch.object(objects.RequestSpec, 'get_by_instance_uuid')
+ @mock.patch.object(objects.InstanceAction, 'action_start')
+ @mock.patch.object(objects.Instance, 'save')
+ def test_live_migrate_messaging_timeout(self, _save, _action, get_spec,
+ add_instance_fault_from_exc):
+ instance = self._create_instance_obj()
+ if self.cell_type == 'api':
+ api = self.compute_api.cells_rpcapi
+ else:
+ api = conductor.api.ComputeTaskAPI
+
+ with mock.patch.object(api, 'live_migrate_instance',
+ side_effect=oslo_exceptions.MessagingTimeout):
+ self.assertRaises(oslo_exceptions.MessagingTimeout,
+ self.compute_api.live_migrate,
+ self.context, instance,
+ host_name='fake_dest_host',
+ block_migration=True, disk_over_commit=True)
+ add_instance_fault_from_exc.assert_called_once_with(
+ self.context,
+ instance,
+ mock.ANY)
+
@mock.patch.object(objects.RequestSpec, 'get_by_instance_uuid')
@mock.patch.object(objects.Instance, 'save')
@mock.patch.object(objects.InstanceAction, 'action_start')