stop jobs once all tasks are stopped (#649)

Fixed #643
This commit is contained in:
bmc-msft
2021-03-09 15:09:18 -05:00
committed by GitHub
parent f26838452b
commit b4ceb263e0
2 changed files with 19 additions and 0 deletions

View File

@ -126,6 +126,7 @@ class Task(BASE_TASK, ORMMixin):
def stopping(self) -> None:
# TODO: we need to 'unschedule' this task from the existing pools
from ..jobs import Job
logging.info("stopping task: %s:%s", self.job_id, self.task_id)
ProxyForward.remove_forward(self.task_id)
@ -133,6 +134,10 @@ class Task(BASE_TASK, ORMMixin):
Node.stop_task(self.task_id)
self.set_state(TaskState.stopped, send=False)
job = Job.get(self.job_id)
if job:
job.stop_if_all_done()
@classmethod
def search_states(
cls, *, job_id: Optional[UUID] = None, states: Optional[List[TaskState]] = None