📝 MIGRATION_LOG.md: Renamed backend/utils/test_korrekturen.py to MIGRATION_LOG.md
This commit is contained in:
158
backend/utils/system_utilities.py
Normal file
158
backend/utils/system_utilities.py
Normal file
@@ -0,0 +1,158 @@
|
||||
#!/usr/bin/env python3.11
|
||||
"""
|
||||
System Utilities - Konsolidierte System-Hilfsfunktionen
|
||||
Zusammenfassung von performance_monitor, scheduler und init_db Funktionalitäten
|
||||
"""
|
||||
|
||||
from utils.logging_config import get_logger
|
||||
from utils.job_scheduler import scheduler
|
||||
from models import init_database, create_initial_admin
|
||||
|
||||
# Logger initialisieren
|
||||
logger = get_logger("system_utilities")
|
||||
|
||||
# ===== PERFORMANCE MONITORING =====
|
||||
|
||||
def init_performance_monitoring(app):
|
||||
"""
|
||||
Initialisiert Performance-Monitoring für die Flask-App
|
||||
|
||||
Args:
|
||||
app: Flask-App-Instanz
|
||||
"""
|
||||
try:
|
||||
# Basic Performance-Monitoring Setup
|
||||
logger.info("[PERF] Performance-Monitoring wird initialisiert...")
|
||||
|
||||
# Optional: Hier könnten weitere Performance-Monitoring-Tools integriert werden
|
||||
# Für Air-Gapped Environment halten wir es minimal
|
||||
|
||||
app.config['PERFORMANCE_MONITORING_ENABLED'] = True
|
||||
|
||||
logger.info("[PERF] ✅ Performance-Monitoring erfolgreich initialisiert")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"[PERF] ❌ Fehler bei Performance-Monitoring-Initialisierung: {str(e)}")
|
||||
app.config['PERFORMANCE_MONITORING_ENABLED'] = False
|
||||
|
||||
# ===== SCHEDULER UTILITIES =====
|
||||
|
||||
def scheduler_is_running():
|
||||
"""
|
||||
Überprüft, ob der Job-Scheduler läuft.
|
||||
|
||||
Returns:
|
||||
bool: True wenn der Scheduler aktiv ist, sonst False
|
||||
"""
|
||||
return scheduler.is_running()
|
||||
|
||||
def start_scheduler():
|
||||
"""
|
||||
Startet den Job-Scheduler.
|
||||
|
||||
Returns:
|
||||
bool: True wenn erfolgreich gestartet, False wenn bereits läuft
|
||||
"""
|
||||
return scheduler.start()
|
||||
|
||||
def stop_scheduler():
|
||||
"""
|
||||
Stoppt den Job-Scheduler.
|
||||
|
||||
Returns:
|
||||
bool: True wenn erfolgreich gestoppt, False wenn nicht läuft
|
||||
"""
|
||||
return scheduler.stop()
|
||||
|
||||
def get_scheduler_uptime():
|
||||
"""
|
||||
Gibt die Laufzeit des Schedulers zurück.
|
||||
|
||||
Returns:
|
||||
str: Formatierte Laufzeit oder None, wenn der Scheduler nicht läuft
|
||||
"""
|
||||
return scheduler.get_uptime()
|
||||
|
||||
def get_scheduler_tasks():
|
||||
"""
|
||||
Gibt alle registrierten Tasks im Scheduler zurück.
|
||||
|
||||
Returns:
|
||||
dict: Dictionary mit Task-IDs als Schlüssel und Task-Konfigurationen als Werte
|
||||
"""
|
||||
return scheduler.get_tasks()
|
||||
|
||||
# ===== DATABASE INITIALIZATION =====
|
||||
|
||||
def initialize_database_with_admin():
|
||||
"""
|
||||
Initialisiert die Datenbank und erstellt einen initialen Admin-Benutzer.
|
||||
|
||||
Returns:
|
||||
bool: True wenn erfolgreich, False bei Fehlern
|
||||
"""
|
||||
try:
|
||||
logger.info("Initialisiere Datenbank...")
|
||||
init_database()
|
||||
|
||||
logger.info("Erstelle initialen Admin-Benutzer...")
|
||||
success = create_initial_admin(
|
||||
email="admin@mercedes-benz.com",
|
||||
password="744563017196A",
|
||||
name="System Administrator",
|
||||
username="admin"
|
||||
)
|
||||
|
||||
if success:
|
||||
logger.info("Admin-Benutzer erfolgreich erstellt.")
|
||||
logger.info("Login-Daten: Benutzername: admin, Passwort: 744563017196A")
|
||||
else:
|
||||
logger.warning("Admin-Benutzer konnte nicht erstellt werden (existiert bereits?).")
|
||||
|
||||
logger.info("Datenbank-Initialisierung abgeschlossen.")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Fehler bei Datenbank-Initialisierung: {str(e)}")
|
||||
return False
|
||||
|
||||
# ===== SYSTEM STATUS =====
|
||||
|
||||
def get_system_status():
|
||||
"""
|
||||
Gibt den aktuellen System-Status zurück.
|
||||
|
||||
Returns:
|
||||
dict: System-Status-Informationen
|
||||
"""
|
||||
return {
|
||||
'scheduler_running': scheduler_is_running(),
|
||||
'scheduler_uptime': get_scheduler_uptime(),
|
||||
'scheduler_tasks': len(get_scheduler_tasks()) if get_scheduler_tasks() else 0,
|
||||
'performance_monitoring': True # Immer aktiviert in dieser Version
|
||||
}
|
||||
|
||||
# ===== CLI INTERFACE =====
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
command = sys.argv[1]
|
||||
|
||||
if command == "init-db":
|
||||
initialize_database_with_admin()
|
||||
elif command == "status":
|
||||
status = get_system_status()
|
||||
print("=== System Status ===")
|
||||
print(f"Scheduler läuft: {'✅' if status['scheduler_running'] else '❌'}")
|
||||
print(f"Scheduler Uptime: {status['scheduler_uptime'] or 'N/A'}")
|
||||
print(f"Scheduler Tasks: {status['scheduler_tasks']}")
|
||||
print(f"Performance Monitoring: {'✅' if status['performance_monitoring'] else '❌'}")
|
||||
else:
|
||||
print("Verfügbare Kommandos:")
|
||||
print(" init-db - Initialisiert Datenbank mit Admin-Benutzer")
|
||||
print(" status - Zeigt System-Status an")
|
||||
else:
|
||||
print("Verwendung: python3.11 system_utilities.py <command>")
|
||||
print("Verfügbare Kommandos: init-db, status")
|
Reference in New Issue
Block a user