api_v1_workers - OmniCloudOrg/OmniOrchestrator GitHub Wiki
Path: src/api/v1/workers.rs
Worker management module for the OmniOrchestrator API
This module provides a REST API for managing workers, including:
- Listing workers
- Creating new workers
- Updating existing workers
- Getting worker details and statistics
- Starting and stopping workers
- Scaling workers
- Deleting workers
pub async fn list_workers(
page: Option<u64>,
per_page: Option<u64>,
pool: &State<sqlx::Pool<MySql>>,
) -> Result<Json<Vec<Worker>>, Status> {
let workers = db::worker::list_workers(pool, page, per_page).await.map_err(|_| Status::InternalServerError)?;
Ok(Json(workers))
}
/// Get a worker by its ID.
#[get("/workers/<worker_id>")]
pub async fn get_worker_by_id(
worker_id: i64,
pool: &State<sqlx::Pool<MySql>>,
) -> Result<Json<Worker>, Status> {
let worker = db::worker::get_worker_by_id(pool, worker_id).await.map_err(|_| Status::NotFound)?;
Ok(Json(worker))
// ... function body
}
List all workers with pagination support.
pub async fn get_worker_by_id(
worker_id: i64,
pool: &State<sqlx::Pool<MySql>>,
) -> Result<Json<Worker>, Status> {
let worker = db::worker::get_worker_by_id(pool, worker_id).await.map_err(|_| Status::NotFound)?;
Ok(Json(worker))
// ... function body
}
Get a worker by its ID.