feat: 云厂商SDK适配层(Vultr/DO/Cloudflare/阿里云/腾讯云)+ 同步服务 + 测试连接/同步接口与前端
This commit is contained in:
@@ -10,7 +10,8 @@ from app.core.seed import seed_providers
|
||||
from app.database import get_session
|
||||
from app.models.provider import ProviderCategory
|
||||
from app.schemas.provider import ProviderCreate, ProviderRead, ProviderUpdate
|
||||
from app.services import provider_service
|
||||
from app.adapters import registry
|
||||
from app.services import provider_service, sync_service
|
||||
|
||||
router = APIRouter(prefix="/api/providers", tags=["providers"])
|
||||
|
||||
@@ -25,6 +26,14 @@ def seed(session: Session = Depends(get_session)) -> dict:
|
||||
return {"added": added}
|
||||
|
||||
|
||||
@router.get("/adapters", summary="已支持的 SDK 适配器元信息")
|
||||
def adapters() -> dict:
|
||||
return {
|
||||
"adapters": registry.adapter_meta(),
|
||||
"supported_types": registry.supported_types(),
|
||||
}
|
||||
|
||||
|
||||
@router.get("", response_model=List[ProviderRead], summary="平台列表")
|
||||
def list_providers(
|
||||
category: Optional[ProviderCategory] = Query(default=None),
|
||||
@@ -70,3 +79,21 @@ def update_provider(
|
||||
)
|
||||
def delete_provider(provider_id: int, session: Session = Depends(get_session)):
|
||||
provider_service.delete_provider(session, provider_id)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/{provider_id}/test",
|
||||
summary="测试平台连接 / 凭证有效性",
|
||||
dependencies=[Depends(require_api_key)],
|
||||
)
|
||||
def test_connection(provider_id: int, session: Session = Depends(get_session)) -> dict:
|
||||
return sync_service.test_provider(session, provider_id)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/{provider_id}/sync",
|
||||
summary="同步平台资产到本地库",
|
||||
dependencies=[Depends(require_api_key)],
|
||||
)
|
||||
def sync_assets(provider_id: int, session: Session = Depends(get_session)) -> dict:
|
||||
return sync_service.sync_provider(session, provider_id)
|
||||
|
||||
Reference in New Issue
Block a user