mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-14 11:08:06 +00:00
mark task as failued if ADO notification fails (#77)
This commit is contained in:
@ -19,8 +19,10 @@ from azure.devops.v6_0.work_item_tracking.work_item_tracking_client import (
|
||||
WorkItemTrackingClient,
|
||||
)
|
||||
from memoization import cached
|
||||
from onefuzztypes.models import ADOTemplate, Report
|
||||
from onefuzztypes.enums import ErrorCode, TaskState
|
||||
from onefuzztypes.models import ADOTemplate, Error, Report
|
||||
|
||||
from ..tasks.main import Task
|
||||
from .common import Render
|
||||
|
||||
|
||||
@ -194,13 +196,36 @@ class ADO:
|
||||
self.create_new()
|
||||
|
||||
|
||||
def fail_task(report: Report, error: Exception) -> None:
|
||||
logging.error(
|
||||
"ADO report failed: job_id:%s task_id:%s err:%s",
|
||||
report.job_id,
|
||||
report.task_id,
|
||||
error,
|
||||
)
|
||||
|
||||
task = Task.get(report.job_id, report.task_id)
|
||||
if task:
|
||||
task.error = Error(code=ErrorCode.NOTIFICATION_FAILURE, errors=[str(error)])
|
||||
task.state = TaskState.stopping
|
||||
task.save()
|
||||
|
||||
|
||||
def notify_ado(
|
||||
config: ADOTemplate, container: str, filename: str, report: Report
|
||||
) -> None:
|
||||
logging.info(
|
||||
"notify ado: job_id:%s task_id:%s container:%s filename:%s",
|
||||
report.job_id,
|
||||
report.task_id,
|
||||
container,
|
||||
filename,
|
||||
)
|
||||
|
||||
try:
|
||||
ado = ADO(container, filename, config, report)
|
||||
ado.process()
|
||||
except AzureDevOpsServiceError as err:
|
||||
logging.error("ADO report failed: %s", err)
|
||||
fail_task(report, err)
|
||||
except ValueError as err:
|
||||
logging.error("ADO report value error: %s", err)
|
||||
fail_task(report, err)
|
||||
|
Reference in New Issue
Block a user