606bf53019
Co-authored-by: Cursor <cursoragent@cursor.com>
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
from sqlalchemy.orm import Session
|
|
|
|
from app.models.event import Event
|
|
from app.schemas.list_models import EventSummary
|
|
from app.services.event_actor_user import extract_event_actor_user
|
|
from app.services.host_sessions import event_session_terminated
|
|
from app.services.rdg_display import build_rdg_display
|
|
from app.services.rdg_session_flap import resolve_rdg_flap_summary
|
|
|
|
|
|
def event_to_summary(event: Event, db: Session | None = None) -> EventSummary:
|
|
host = event.host
|
|
rdg_flap = False
|
|
rdg_flap_pair_event_id: int | None = None
|
|
rdg_flap_qwinsta_event_id: int | None = None
|
|
if db is not None:
|
|
rdg_flap, rdg_flap_pair_event_id, rdg_flap_qwinsta_event_id = resolve_rdg_flap_summary(
|
|
db, event
|
|
)
|
|
|
|
title = event.title
|
|
summary = event.summary
|
|
rdg_access_path: str | None = None
|
|
rdg_qwinsta_enabled = False
|
|
rdg_display = build_rdg_display(event, db)
|
|
if rdg_display is not None:
|
|
title = rdg_display.title
|
|
summary = rdg_display.summary
|
|
rdg_access_path = rdg_display.access_path
|
|
rdg_qwinsta_enabled = rdg_display.qwinsta_enabled
|
|
|
|
return EventSummary(
|
|
id=event.id,
|
|
event_id=event.event_id,
|
|
host_id=event.host_id,
|
|
hostname=host.hostname,
|
|
display_name=host.display_name,
|
|
product_version=host.product_version,
|
|
occurred_at=event.occurred_at,
|
|
received_at=event.received_at,
|
|
category=event.category,
|
|
type=event.type,
|
|
severity=event.severity,
|
|
title=title,
|
|
summary=summary,
|
|
actor_user=extract_event_actor_user(event.type, event.details),
|
|
rdg_flap=rdg_flap,
|
|
rdg_flap_pair_event_id=rdg_flap_pair_event_id,
|
|
rdg_flap_qwinsta_event_id=rdg_flap_qwinsta_event_id,
|
|
rdg_access_path=rdg_access_path,
|
|
rdg_qwinsta_enabled=rdg_qwinsta_enabled,
|
|
session_terminated=event_session_terminated(event, db=db),
|
|
)
|