Allow force-delete even if task_state is not None
As of now, if vm task_state is not 'None', and user tries to force-delete instance, then he gets HTTP 500 Error and instance deletion doesn't progress. The same is not the case, when user tries with delete api instead of force-delete api, even if vm task_state is not 'None'. Fixed the issue by allowing force-delete to delete instance in task_state other than None. Change-Id: Ida1a9d8761cec9585f031ec25e5692b8bb55661e Closes-Bug: #1741000
This commit is contained in:
parent
870ad2c205
commit
0d2031a5c4
|
@ -2143,7 +2143,8 @@ class API(base.Base):
|
|||
instance.save(expected_task_state=[None])
|
||||
|
||||
@check_instance_lock
|
||||
@check_instance_state(must_have_launched=False)
|
||||
@check_instance_state(task_state=None,
|
||||
must_have_launched=False)
|
||||
def force_delete(self, context, instance):
|
||||
"""Force delete an instance in any vm_state/task_state."""
|
||||
self._delete(context, instance, 'force_delete', self._do_force_delete,
|
||||
|
|
|
@ -1215,6 +1215,11 @@ class _ComputeAPIUnitTestMixIn(object):
|
|||
system_metadata=fake_sys_meta)
|
||||
self._test_delete('force_delete', vm_state=vm_state)
|
||||
|
||||
def test_delete_forced_when_task_state_is_not_none(self):
|
||||
for vm_state in self._get_vm_states():
|
||||
self._test_delete('force_delete', vm_state=vm_state,
|
||||
task_state=task_states.RESIZE_MIGRATING)
|
||||
|
||||
def test_delete_fast_if_host_not_set(self):
|
||||
self.useFixture(fixtures.AllServicesCurrent())
|
||||
inst = self._create_instance_obj()
|
||||
|
|
Loading…
Reference in New Issue