from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from models import BackupRequest, RestoreRequest from k8s_utils import get_namespaces, get_pvcs, get_all_backup_pvcs from backup_manager import create_backup, restore_backup app = FastAPI() # CORS ל־React frontend app.add_middleware( CORSMiddleware, allow_origins=["*"], # עדיף לשנות בהמשך לכתובת ספציפית allow_methods=["*"], allow_headers=["*"], ) @app.get("/namespaces") def list_namespaces(): return get_namespaces() @app.get("/pvcs/{namespace}") def list_pvcs(namespace: str): return get_pvcs(namespace) @app.post("/backup") def backup_pvc(request: BackupRequest): create_backup(request.namespace, request.pvc_name, request.backup_name) return {"message": "Backup job created."} @app.post("/restore") def restore_pvc(request: RestoreRequest): restore_backup(request.target_namespace, request.target_pvc, request.backup_name) return {"message": "Restore job created."} @app.get("/backup-pvcs") def list_backup_pvcs(): return get_all_backup_pvcs() if __name__ == "__main__": import uvicorn uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)