mirror of
https://github.com/deunix-educ/Fail2banMqttActionBanishment.git
synced 2026-08-24 03:11:58 +02:00
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from typing import Any
|
|
|
|
from .models import BanEvent
|
|
|
|
|
|
def event_payload(instance: BanEvent, node_alias: str | None = None) -> dict[str, Any]:
|
|
"""Représentation JSON-sérialisable d'un BanEvent, partagée par le
|
|
WebSocket temps réel et le bootstrap initial du tableau de bord.
|
|
|
|
node_alias : alias lisible du noeud (NodeRegistry.display_name),
|
|
résolu par l'appelant plutôt qu'ici pour ne pas cacher une requête DB
|
|
par événement (voir views.py, qui résout tous les alias en une seule
|
|
requête avant d'appeler cette fonction en boucle)."""
|
|
return {
|
|
'id': instance.pk,
|
|
'received_at': instance.received_at.isoformat(),
|
|
'node': instance.node,
|
|
'node_alias': node_alias or instance.node,
|
|
'jail_name': instance.jail_name,
|
|
'action': instance.action,
|
|
'ip_address': instance.ip_address,
|
|
'port': instance.port,
|
|
'protocol': instance.protocol,
|
|
'bantime': instance.bantime,
|
|
'latitude': instance.latitude,
|
|
'longitude': instance.longitude,
|
|
'country': instance.country,
|
|
'country_code': instance.country_code,
|
|
'city': instance.city,
|
|
}
|