Refactor internal node event schemas (#29)

This commit is contained in:
Joe Ranweiler
2020-09-29 13:30:33 -07:00
committed by GitHub
parent 9dee8f12f0
commit dbb83e1496
6 changed files with 104 additions and 50 deletions

View File

@ -7,12 +7,7 @@ from typing import List, Optional, Tuple
from uuid import UUID
from onefuzztypes.models import TaskEvent as BASE_TASK_EVENT
from onefuzztypes.models import (
TaskEventSummary,
WorkerDoneEvent,
WorkerEvent,
WorkerRunningEvent,
)
from onefuzztypes.models import TaskEventSummary, WorkerEvent
from .orm import ORMMixin
@ -26,8 +21,8 @@ class TaskEvent(BASE_TASK_EVENT, ORMMixin):
return [
TaskEventSummary(
timestamp=e.Timestamp,
event_data=cls.get_event_data(e.event_data),
event_type=type(e.event_data.event).__name__,
event_data=get_event_data(e.event_data),
event_type=get_event_type(e.event_data),
)
for e in events
]
@ -36,12 +31,20 @@ class TaskEvent(BASE_TASK_EVENT, ORMMixin):
def key_fields(cls) -> Tuple[str, Optional[str]]:
return ("task_id", None)
@classmethod
def get_event_data(cls, worker_event: WorkerEvent) -> str:
event = worker_event.event
if isinstance(event, WorkerDoneEvent):
return "exit status: %s" % event.exit_status
elif isinstance(event, WorkerRunningEvent):
return ""
else:
return "Unrecognized event: %s" % event
def get_event_data(event: WorkerEvent) -> str:
if event.done:
return "exit status: %s" % event.done.exit_status
elif event.running:
return ""
else:
return "Unrecognized event: %s" % event
def get_event_type(event: WorkerEvent) -> str:
if event.done:
return type(event.done).__name__
elif event.running:
return type(event.running).__name__
else:
return "Unrecognized event: %s" % event