mirror of
https://github.com/deunix-educ/Fail2banMqttActionBanishment.git
synced 2026-08-24 03:11:58 +02:00
First commit
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
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,
|
||||
}
|
||||
Reference in New Issue
Block a user