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
(cherry picked from commit 0d2031a5c4
)
This commit is contained in:
parent
9ace6edb09
commit
49685c5845
@ -2189,7 +2189,8 @@ class API(base.Base):
|
|||||||
instance.save(expected_task_state=[None])
|
instance.save(expected_task_state=[None])
|
||||||
|
|
||||||
@check_instance_lock
|
@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):
|
def force_delete(self, context, instance):
|
||||||
"""Force delete an instance in any vm_state/task_state."""
|
"""Force delete an instance in any vm_state/task_state."""
|
||||||
self._delete(context, instance, 'force_delete', self._do_force_delete,
|
self._delete(context, instance, 'force_delete', self._do_force_delete,
|
||||||
|
@ -1283,6 +1283,11 @@ class _ComputeAPIUnitTestMixIn(object):
|
|||||||
delete_type='delete')
|
delete_type='delete')
|
||||||
mock_local_delete.assert_not_called()
|
mock_local_delete.assert_not_called()
|
||||||
|
|
||||||
|
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):
|
def test_delete_fast_if_host_not_set(self):
|
||||||
self.useFixture(fixtures.AllServicesCurrent())
|
self.useFixture(fixtures.AllServicesCurrent())
|
||||||
inst = self._create_instance_obj()
|
inst = self._create_instance_obj()
|
||||||
|
Loading…
Reference in New Issue
Block a user