初始化
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
"""业务下发 API"""
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
from pydantic import BaseModel
|
||||
from typing import List, Optional
|
||||
from app.core.database import get_db
|
||||
from app.services.provision_service import ProvisionService
|
||||
|
||||
router = APIRouter(prefix="/api/provision", tags=["业务下发"])
|
||||
|
||||
|
||||
class ProvisionRequest(BaseModel):
|
||||
device_id: int
|
||||
|
||||
|
||||
class BatchProvisionRequest(BaseModel):
|
||||
device_ids: List[int]
|
||||
|
||||
|
||||
class ProvisionResponse(BaseModel):
|
||||
success: bool
|
||||
message: str
|
||||
device_id: Optional[int] = None
|
||||
mac_address: Optional[str] = None
|
||||
olt_ip: Optional[str] = None
|
||||
port: Optional[str] = None
|
||||
|
||||
|
||||
@router.post("/service", response_model=ProvisionResponse)
|
||||
def provision_single_device(
|
||||
request: ProvisionRequest,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""下发业务到单个设备"""
|
||||
service = ProvisionService(db)
|
||||
result = service.provision_device(request.device_id)
|
||||
|
||||
if result.get("success"):
|
||||
return ProvisionResponse(
|
||||
success=True,
|
||||
message=f"业务下发成功,MAC: {result['mac_address']}, 端口: {result['port']}",
|
||||
device_id=result["device_id"],
|
||||
mac_address=result["mac_address"],
|
||||
olt_ip=result.get("olt_ip"),
|
||||
port=result.get("port")
|
||||
)
|
||||
else:
|
||||
raise HTTPException(status_code=400, detail=result.get("error", "业务下发失败"))
|
||||
|
||||
|
||||
@router.post("/batch", response_model=dict)
|
||||
def provision_batch_devices(
|
||||
request: BatchProvisionRequest,
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""批量下发业务"""
|
||||
service = ProvisionService(db)
|
||||
result = service.batch_provision(request.device_ids)
|
||||
return result
|
||||
Reference in New Issue
Block a user