Merge "Query deleted instance records during _destroy_evacuated_instances" into stable/ocata

This commit is contained in:
Jenkins 2017-07-17 17:29:29 +00:00 committed by Gerrit Code Review
commit 720611893b
3 changed files with 12 additions and 9 deletions

View File

@ -636,13 +636,14 @@ class ComputeManager(manager.Manager):
'status': ['accepted', 'done'],
'migration_type': 'evacuation',
}
evacuations = objects.MigrationList.get_by_filters(context, filters)
with utils.temporary_mutation(context, read_deleted='yes'):
evacuations = objects.MigrationList.get_by_filters(context,
filters)
if not evacuations:
return
evacuations = {mig.instance_uuid: mig for mig in evacuations}
filters = {'deleted': False}
local_instances = self._get_instances_on_driver(context, filters)
local_instances = self._get_instances_on_driver(context)
evacuated = [inst for inst in local_instances
if inst.uuid in evacuations]
for instance in evacuated:

View File

@ -7061,7 +7061,7 @@ class ComputeTestCase(BaseTestCase):
{'source_compute': self.compute.host,
'status': ['accepted', 'done'],
'migration_type': 'evacuation'})
mock_get_inst.assert_called_once_with(fake_context, {'deleted': False})
mock_get_inst.assert_called_once_with(fake_context)
mock_get_nw.assert_called_once_with(fake_context, evacuated_instance)
mock_get_blk.assert_called_once_with(fake_context, evacuated_instance)
mock_is_inst.assert_called_once_with(fake_context, evacuated_instance)
@ -7115,7 +7115,7 @@ class ComputeTestCase(BaseTestCase):
return_value='fake_network_info') as mock_get_nw:
self.compute._destroy_evacuated_instances(fake_context)
mock_get_drv.assert_called_once_with(fake_context, {'deleted': False})
mock_get_drv.assert_called_once_with(fake_context)
mock_get_nw.assert_called_once_with(fake_context, evacuated_instance)
mock_get_blk.assert_called_once_with(fake_context, evacuated_instance)
mock_check_local.assert_called_once_with(fake_context,
@ -7173,7 +7173,7 @@ class ComputeTestCase(BaseTestCase):
return_value='fake_network_info') as mock_get_nw:
self.compute._destroy_evacuated_instances(fake_context)
mock_get_inst.assert_called_once_with(fake_context, {'deleted': False})
mock_get_inst.assert_called_once_with(fake_context)
mock_get_nw.assert_called_once_with(fake_context, evacuated_instance)
mock_get_blk.assert_called_once_with(fake_context, evacuated_instance)
mock_check_local.assert_called_once_with(fake_context,

View File

@ -583,11 +583,12 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
@mock.patch.object(objects.InstanceList, 'get_by_host')
@mock.patch.object(fake_driver.FakeDriver, 'destroy')
@mock.patch.object(fake_driver.FakeDriver, 'init_host')
@mock.patch('nova.utils.temporary_mutation')
@mock.patch('nova.objects.MigrationList.get_by_filters')
@mock.patch('nova.objects.Migration.save')
def test_init_host_with_evacuated_instance(self, mock_save, mock_mig_get,
mock_init_host, mock_destroy, mock_host_get, mock_admin_ctxt,
mock_init_virt, mock_get_inst):
mock_temp_mut, mock_init_host, mock_destroy, mock_host_get,
mock_admin_ctxt, mock_init_virt, mock_get_inst):
our_host = self.compute.host
not_our_host = 'not-' + our_host
@ -610,7 +611,8 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
mock_host_get.assert_called_once_with(self.context, our_host,
expected_attrs=['info_cache', 'metadata'])
mock_init_virt.assert_called_once_with()
mock_get_inst.assert_called_once_with(self.context, {'deleted': False})
mock_temp_mut.assert_called_once_with(self.context, read_deleted='yes')
mock_get_inst.assert_called_once_with(self.context)
mock_get_net.assert_called_once_with(self.context, deleted_instance)
# ensure driver.destroy is called so that driver may