Clean up allocations if instance deleted during build
When we notice that an instance was deleted after scheduling, we punt on instance creation. When that happens, the scheduler will have created allocations already so we need to delete those to avoid leaking resources. Related-Bug: #1679750 Change-Id: I54806fe43257528fbec7d44c841ee4abb14c9dff
This commit is contained in:
parent
d176175db4
commit
57a3af6921
|
@ -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 = (
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue