01d72d0f68
Seaca surfaced flap via Problems; the web UI only flagged 303 in DB and had no visible label. Resolve flap pairs at read time and show badge plus qwinsta on both sides of 302→303.
38 lines
1.3 KiB
Python
38 lines
1.3 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.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
|
|
)
|
|
|
|
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=event.title,
|
|
summary=event.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,
|
|
)
|