snapix/backend/main.py
2025-06-10 02:06:20 +03:00

38 lines
1.1 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from models import BackupRequest, RestoreRequest
from k8s_utils import get_namespaces, get_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."}
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)