Merge "Clean up allocations if instance deleted during build"

This commit is contained in:
Zuul 2017-11-06 05:34:47 +00:00 committed by Gerrit Code Review
commit df0a80220d
2 changed files with 7 additions and 1 deletions

View File

@ -1053,6 +1053,8 @@ class ComputeTaskManager(base.Base):
'was already deleted.', instance=instance)
# This is a placeholder in case the quota recheck fails.
instances.append(None)
rc = self.scheduler_client.reportclient
rc.delete_allocation_for_instance(instance.uuid)
continue
else:
instance.availability_zone = (

View File

@ -1762,7 +1762,11 @@ class ConductorTaskTestCase(_BaseTaskTestCase, test_compute.BaseTestCase):
select_destinations.return_value = [{'host': 'fake-host',
'nodename': 'nodesarestupid',
'limits': None}]
self.conductor.schedule_and_build_instances(**self.params)
with mock.patch.object(self.conductor.scheduler_client,
'reportclient') as mock_rc:
self.conductor.schedule_and_build_instances(**self.params)
mock_rc.delete_allocation_for_instance.assert_called_once_with(
inst_uuid)
# we don't create the instance since the build request is gone
self.assertFalse(inst_create.called)
# we don't build the instance since we didn't create it