Initial commit — Serveur Lucas SmartEye
API réception alertes chute (SmartEye/YOLO), analyse IA (Gemini 2.5 Flash), gestion alertes avec escalade (watchdog), notifications Firebase, dashboard web, documentation MkDocs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
54
alert_ack_handler.py
Normal file
54
alert_ack_handler.py
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
SmartEye SENTINEL - Handler d'Acquittement
|
||||
============================================
|
||||
Appelé par alert_ack.php pour mettre à jour le statut d'une alerte.
|
||||
|
||||
Usage : python3 alert_ack_handler.py <alert_id> <status> [detail]
|
||||
|
||||
Auteur : Unigest Solutions / SmartEye V30
|
||||
"""
|
||||
|
||||
import sys
|
||||
import json
|
||||
|
||||
sys.path.insert(0, '/var/www/lucas')
|
||||
from alert_manager import mettre_a_jour_statut, get_alerte, AlertStatus
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 3:
|
||||
print(json.dumps({"success": False, "error": "Usage: alert_ack_handler.py <alert_id> <status> [detail]"}))
|
||||
sys.exit(1)
|
||||
|
||||
alert_id = sys.argv[1]
|
||||
status = sys.argv[2].upper()
|
||||
detail = sys.argv[3] if len(sys.argv) > 3 else None
|
||||
|
||||
# Vérifier que l'alerte existe
|
||||
alerte = get_alerte(alert_id)
|
||||
if not alerte:
|
||||
print(json.dumps({
|
||||
"success": False,
|
||||
"error": f"Alerte {alert_id} non trouvée (peut-être déjà résolue ou expirée)"
|
||||
}))
|
||||
sys.exit(0)
|
||||
|
||||
# Mettre à jour
|
||||
result = mettre_a_jour_statut(alert_id, status, detail)
|
||||
|
||||
if result:
|
||||
print(json.dumps({
|
||||
"success": True,
|
||||
"message": f"Alerte {alert_id[:8]}... mise à jour : {status}",
|
||||
"alert_id": alert_id,
|
||||
"new_status": status,
|
||||
"previous_status": alerte.get("status", "?")
|
||||
}))
|
||||
else:
|
||||
print(json.dumps({
|
||||
"success": False,
|
||||
"error": f"Impossible de passer au statut {status} (statut actuel: {alerte.get('status', '?')})"
|
||||
}))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user