ruạṛ
from fastapi import BackgroundTasks, APIRouter from pydantic import BaseModel from app.mount_bv_and_get_backup_data import mount_backup_volume_and_get_username_list from app.utils.background_task_wrapper import background_task_wrapper from app.utils.threaded_tasks import run_threaded_task router = APIRouter() class BackupVolumeDataRequest(BaseModel): cbs_job_id: int iqn: str ip: str port: str @router.post("/mount_and_backup_data", summary="Mount backup volume and get data") async def mount_and_backup_data(request: BackupVolumeDataRequest, background_tasks: BackgroundTasks): background_tasks.add_task(mount_bv_and_get_backup_data, request.cbs_job_id, request.iqn, request.ip, request.port) return {"message": "Request accepted", "cbs_job_id": request.cbs_job_id} @background_task_wrapper def mount_bv_and_get_backup_data(cbs_job_id,iqn, ip, port): def task(): return mount_backup_volume_and_get_username_list(cbs_job_id, iqn, ip, port) def success(data): print(f"success mount_bv_and_get_backup_data data: {data}") username_list = data return {"username_list": username_list} run_threaded_task(cbs_job_id, "fetch_scheduled_backup_data", task, success)
cải xoăn