57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script pour vérifier et forcer la mise à jour du flag network_device
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
# Ajouter le chemin parent pour les imports
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../../..')))
|
|
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
from backend.app.models.ip import IP
|
|
|
|
# Créer la connexion à la base de données
|
|
db_path = os.getenv('DB_PATH', './data/db.sqlite')
|
|
db_url = f"sqlite:///{db_path}"
|
|
engine = create_engine(db_url, echo=False)
|
|
SessionLocal = sessionmaker(bind=engine)
|
|
|
|
db = SessionLocal()
|
|
|
|
try:
|
|
# Récupérer toutes les IPs
|
|
ips = db.query(IP).all()
|
|
|
|
print(f"\n📊 Total IPs: {len(ips)}\n")
|
|
|
|
updated = 0
|
|
for ip in ips:
|
|
# Afficher les IPs avec host défini
|
|
if ip.host:
|
|
status_icon = "🟢" if ip.last_status == "online" else "🔴"
|
|
network_icon = "🔷" if ip.network_device else " "
|
|
|
|
print(f"{status_icon} {network_icon} {ip.ip:15s} | Host: {ip.host:15s} | Network: {ip.network_device} | Status: {ip.last_status}")
|
|
|
|
# Mettre à jour network_device si host == "Network"
|
|
should_be_network = (ip.host == "Network")
|
|
if ip.network_device != should_be_network:
|
|
ip.network_device = should_be_network
|
|
updated += 1
|
|
print(f" ✓ Flag network_device mis à jour pour {ip.ip}: {should_be_network}")
|
|
|
|
if updated > 0:
|
|
db.commit()
|
|
print(f"\n✅ {updated} IP(s) mise(s) à jour!")
|
|
else:
|
|
print(f"\n✓ Tous les flags network_device sont déjà à jour")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erreur: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
finally:
|
|
db.close()
|