From f70877e9bf3cbb32ed862cc7f1e87c6c756b6017 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Thu, 22 Apr 2021 12:31:06 +0200 Subject: [PATCH] TMSS-666: added resursive methods to cancel all successor subtasks --- SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py b/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py index 59e0ec30306..b5a78c4074f 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py @@ -1889,6 +1889,19 @@ def cancel_subtask(subtask: Subtask) -> Subtask: return subtask +def cancel_subtask_and_successors(subtask: Subtask) -> Subtask: + '''cancel this given subtask and all the downstream successor subtasks (recurses, following the successors of successors of successors of... etc''' + cancel_subtask(subtask) + cancel_subtask_successors(subtask) + return subtask + + +def cancel_subtask_successors(subtask: Subtask): + '''cancel all the downstream successor subtasks (recurses, following the successors of successors of successors of... etc''' + for successor in subtask.successors: + cancel_subtask_and_successors(successor) + + def kill_observation_subtask(subtask: Subtask) -> bool: '''Kill the observation subtask. Return True if actually killed.''' if subtask.specifications_template.type.value == SubtaskType.Choices.OBSERVATION.value: -- GitLab