Merge "live migration check source failed caused bdm.device_path lost"
This commit is contained in:
commit
1d329d5f1b
@ -5017,13 +5017,8 @@ class ComputeManager(manager.Manager):
|
||||
migrate_data_obj.LiveMigrateData.detect_implementation(
|
||||
dest_check_data)
|
||||
dest_check_data.is_volume_backed = is_volume_backed
|
||||
try:
|
||||
block_device_info = self._get_instance_block_device_info(
|
||||
ctxt, instance, refresh_conn_info=True)
|
||||
except cinder_exception.ClientException as exc:
|
||||
raise exception.MigrationPreCheckClientException(
|
||||
reason=six.text_type(exc))
|
||||
|
||||
block_device_info = self._get_instance_block_device_info(
|
||||
ctxt, instance, refresh_conn_info=False)
|
||||
result = self.driver.check_can_live_migrate_source(ctxt, instance,
|
||||
dest_check_data,
|
||||
block_device_info)
|
||||
|
@ -1859,35 +1859,10 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
|
||||
{'block_device_mapping': 'fake'})
|
||||
mock_volume.assert_called_once_with(self.context, instance)
|
||||
mock_get_inst.assert_called_once_with(self.context, instance,
|
||||
refresh_conn_info=True)
|
||||
refresh_conn_info=False)
|
||||
|
||||
self.assertTrue(dest_check_data.is_volume_backed)
|
||||
|
||||
def test_can_live_migrate_source_for_cinder_client_exception(self):
|
||||
|
||||
is_volume_backed = 'volume_backed'
|
||||
dest_check_data = migrate_data_obj.LiveMigrateData()
|
||||
db_instance = fake_instance.fake_db_instance()
|
||||
instance = objects.Instance._from_db_object(
|
||||
self.context, objects.Instance(), db_instance)
|
||||
|
||||
@mock.patch.object(compute_utils, 'EventReporter')
|
||||
@mock.patch.object(compute_utils, 'add_instance_fault_from_exc')
|
||||
@mock.patch.object(compute_utils, 'is_volume_backed_instance')
|
||||
@mock.patch.object(self.compute,
|
||||
'_get_instance_block_device_info')
|
||||
def do_test(mock_block_info, mock_volume_backed,
|
||||
mock_inst_fault, mock_event):
|
||||
mock_volume_backed.return_value = is_volume_backed
|
||||
mock_block_info.side_effect = cinder_exception.ClientException(
|
||||
'test', 'test')
|
||||
|
||||
self.assertRaises(exception.MigrationPreCheckClientException,
|
||||
self.compute.check_can_live_migrate_source,
|
||||
self.context, instance,
|
||||
dest_check_data)
|
||||
do_test()
|
||||
|
||||
def _test_check_can_live_migrate_destination(self, do_raise=False):
|
||||
db_instance = fake_instance.fake_db_instance(host='fake-host')
|
||||
instance = objects.Instance._from_db_object(
|
||||
|
Loading…
x
Reference in New Issue
Block a user