51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
"""FastAPI 主应用"""
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from app.config import settings
|
|
from app.routers import vm, storage, network, snapshot, monitor
|
|
|
|
app = FastAPI(
|
|
title=settings.APP_NAME,
|
|
version=settings.APP_VERSION,
|
|
description="KVM 虚拟化管理平台 API",
|
|
)
|
|
|
|
# CORS
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# 注册路由
|
|
app.include_router(vm.router, prefix=f"{settings.API_PREFIX}/vm", tags=["虚拟机管理"])
|
|
app.include_router(storage.router, prefix=f"{settings.API_PREFIX}/storage", tags=["存储管理"])
|
|
app.include_router(network.router, prefix=f"{settings.API_PREFIX}/network", tags=["网络管理"])
|
|
app.include_router(snapshot.router, prefix=f"{settings.API_PREFIX}/snapshot", tags=["快照管理"])
|
|
app.include_router(monitor.router, prefix=f"{settings.API_PREFIX}/monitor", tags=["资源监控"])
|
|
|
|
|
|
@app.get("/")
|
|
async def root():
|
|
return {"name": settings.APP_NAME, "version": settings.APP_VERSION}
|
|
|
|
|
|
@app.get(f"{settings.API_PREFIX}/host")
|
|
async def host_info():
|
|
"""获取宿主机信息"""
|
|
from app.libvirt_conn import libvirt_conn
|
|
return libvirt_conn.get_host_info()
|
|
|
|
|
|
@app.get("/health")
|
|
async def health():
|
|
"""健康检查"""
|
|
from app.libvirt_conn import libvirt_conn
|
|
try:
|
|
conn = libvirt_conn.conn
|
|
return {"status": "ok", "libvirt": conn.isAlive()}
|
|
except Exception as e:
|
|
return {"status": "error", "message": str(e)}
|