from fastapi import APIRouter, Request, HTTPException import requests from service_config import ServiceConfig router = APIRouter() service_config = ServiceConfig() service_config.load() @router.post("/startup") async def spark_startup(request: Request): data = await request.json() spark_url = service_config.spark_endpoint + "/startup" try: response = requests.post(spark_url, json=data, timeout=30) response.raise_for_status() return response.json() except Exception as e: raise HTTPException(status_code=500, detail=f"Spark startup error: {e}") @router.get("/project_list") def spark_project_list(): spark_url = service_config.spark_endpoint + "/project/list" try: response = requests.get(spark_url, timeout=30) response.raise_for_status() return response.json() except Exception as e: raise HTTPException(status_code=500, detail=f"Spark project list error: {e}") @router.post("/enable") async def spark_enable_project(request: Request): data = await request.json() spark_url = service_config.spark_endpoint + "/project/enable" try: response = requests.post(spark_url, json=data, timeout=30) response.raise_for_status() return response.json() except Exception as e: raise HTTPException(status_code=500, detail=f"Spark enable error: {e}") @router.post("/disable") async def spark_disable_project(request: Request): data = await request.json() spark_url = service_config.spark_endpoint + "/project/disable" try: response = requests.post(spark_url, json=data, timeout=30) response.raise_for_status() return response.json() except Exception as e: raise HTTPException(status_code=500, detail=f"Spark disable error: {e}") @router.delete("/delete") async def spark_delete_project(request: Request): data = await request.json() spark_url = service_config.spark_endpoint + "/project" try: response = requests.delete(spark_url, json=data, timeout=30) response.raise_for_status() return response.json() except Exception as e: raise HTTPException(status_code=500, detail=f"Spark delete error: {e}")