Skip to content
Snippets Groups Projects

Resolve TMSS-666

Merged Jorrit Schaap requested to merge TMSS-666 into master
All threads resolved!
1 file
+ 0
56
Compare changes
  • Side-by-side
  • Inline
  • c5795ed4
    TMSS-666: removed set_subtask_state_following_allowed_transitions from... · c5795ed4
    Jorrit Schaap authored
    TMSS-666: removed set_subtask_state_following_allowed_transitions from subtasks.py. It was moved in TMSS-725 to test_utils.py
@@ -1902,59 +1902,3 @@ def kill_pipeline_subtask(subtask: Subtask) -> bool:
raise NotImplementedError()
def set_subtask_state_following_allowed_transitions(subtask: typing.Union[Subtask, int], state_value:str) -> Subtask:
'''helper function to set subtask state following allowed transitions'''
if isinstance(subtask, int):
# the given subtask is an id. Fetch object.
subtask = Subtask.objects.get(id=subtask)
while subtask.state.value != state_value and (subtask.state.value not in (SubtaskState.Choices.FINISHED.value,
SubtaskState.Choices.ERROR.value,
SubtaskState.Choices.CANCELLED.value)):
# handle "unsuccessful path" to cancelled/canceling end state
if state_value in (SubtaskState.Choices.CANCELLED.value, SubtaskState.Choices.CANCELLING.value) and \
subtask.state.value not in (SubtaskState.Choices.DEFINING.value,
SubtaskState.Choices.QUEUEING.value,
SubtaskState.Choices.STARTING.value,
SubtaskState.Choices.FINISHING.value,
SubtaskState.Choices.CANCELLING.value):
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.CANCELLING.value)
# handle "unsuccessful path" to error end state
elif state_value == SubtaskState.Choices.ERROR.value and subtask.state.value in (SubtaskState.Choices.DEFINING.value,
SubtaskState.Choices.QUEUEING.value,
SubtaskState.Choices.STARTING.value,
SubtaskState.Choices.FINISHING.value,
SubtaskState.Choices.CANCELLING.value):
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.ERROR.value)
# handle reverse path to unscheduling
elif state_value == SubtaskState.Choices.UNSCHEDULING.value and subtask.state.value in (SubtaskState.Choices.SCHEDULED.value):
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.UNSCHEDULING.value)
else:
# handle "normal successful path"
if subtask.state.value == SubtaskState.Choices.DEFINING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.DEFINED.value)
elif subtask.state.value == SubtaskState.Choices.DEFINED.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.SCHEDULING.value)
elif subtask.state.value == SubtaskState.Choices.SCHEDULING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.SCHEDULED.value)
elif subtask.state.value == SubtaskState.Choices.SCHEDULED.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.QUEUEING.value)
elif subtask.state.value == SubtaskState.Choices.QUEUEING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.QUEUED.value)
elif subtask.state.value == SubtaskState.Choices.QUEUED.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.STARTING.value)
elif subtask.state.value == SubtaskState.Choices.STARTING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.STARTED.value)
elif subtask.state.value == SubtaskState.Choices.STARTED.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.FINISHING.value)
elif subtask.state.value == SubtaskState.Choices.FINISHING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.FINISHED.value)
elif subtask.state.value == SubtaskState.Choices.CANCELLING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.CANCELLED.value)
elif subtask.state.value == SubtaskState.Choices.UNSCHEDULING.value:
subtask.state = SubtaskState.objects.get(value=SubtaskState.Choices.DEFINED.value)
subtask.save()
return subtask
Loading