mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-15 03:18:07 +00:00
Add job stopped task info (#648)
This commit is contained in:
@ -8,7 +8,7 @@ from datetime import datetime, timedelta
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
from onefuzztypes.enums import ErrorCode, JobState, TaskState
|
||||
from onefuzztypes.events import EventJobCreated, EventJobStopped
|
||||
from onefuzztypes.events import EventJobCreated, EventJobStopped, JobTaskStopped
|
||||
from onefuzztypes.models import Error
|
||||
from onefuzztypes.models import Job as BASE_JOB
|
||||
|
||||
@ -88,20 +88,26 @@ class Job(BASE_JOB, ORMMixin):
|
||||
def stopping(self) -> None:
|
||||
self.state = JobState.stopping
|
||||
logging.info(JOB_LOG_PREFIX + "stopping: %s", self.job_id)
|
||||
not_stopped = [
|
||||
task
|
||||
for task in Task.search(query={"job_id": [self.job_id]})
|
||||
if task.state != TaskState.stopped
|
||||
]
|
||||
tasks = Task.search(query={"job_id": [self.job_id]})
|
||||
not_stopped = [task for task in tasks if task.state != TaskState.stopped]
|
||||
|
||||
if not_stopped:
|
||||
for task in not_stopped:
|
||||
task.mark_stopping()
|
||||
else:
|
||||
self.state = JobState.stopped
|
||||
task_info = [
|
||||
JobTaskStopped(
|
||||
task_id=x.task_id, error=x.error, task_type=x.config.task.type
|
||||
)
|
||||
for x in tasks
|
||||
]
|
||||
send_event(
|
||||
EventJobStopped(
|
||||
job_id=self.job_id, config=self.config, user_info=self.user_info
|
||||
job_id=self.job_id,
|
||||
config=self.config,
|
||||
user_info=self.user_info,
|
||||
task_info=task_info,
|
||||
)
|
||||
)
|
||||
self.save()
|
||||
|
Reference in New Issue
Block a user