[router] support /add_worker api (#2369)
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
use crate::router::PolicyConfig;
|
||||
use crate::router::Router;
|
||||
use actix_web::{get, post, web, App, HttpRequest, HttpResponse, HttpServer, Responder};
|
||||
use actix_web::{
|
||||
delete, get, post, put, web, App, HttpRequest, HttpResponse, HttpServer, Responder,
|
||||
};
|
||||
use bytes::Bytes;
|
||||
use env_logger::Builder;
|
||||
use log::{info, LevelFilter};
|
||||
use std::collections::HashMap;
|
||||
use std::io::Write;
|
||||
|
||||
#[derive(Debug)]
|
||||
@@ -128,6 +131,22 @@ async fn v1_completions(
|
||||
.await
|
||||
}
|
||||
|
||||
#[post("/add_worker")]
|
||||
async fn add_worker(
|
||||
query: web::Query<HashMap<String, String>>,
|
||||
data: web::Data<AppState>,
|
||||
) -> impl Responder {
|
||||
let worker_url = match query.get("url") {
|
||||
Some(url) => url.to_string(),
|
||||
None => {
|
||||
return HttpResponse::BadRequest()
|
||||
.body("Worker URL required. Provide 'url' query parameter")
|
||||
}
|
||||
};
|
||||
data.router.add_worker(worker_url);
|
||||
HttpResponse::Ok().finish()
|
||||
}
|
||||
|
||||
pub struct ServerConfig {
|
||||
pub host: String,
|
||||
pub port: u16,
|
||||
@@ -183,6 +202,7 @@ pub async fn startup(config: ServerConfig) -> std::io::Result<()> {
|
||||
.service(health)
|
||||
.service(health_generate)
|
||||
.service(get_server_info)
|
||||
.service(add_worker)
|
||||
})
|
||||
.bind((config.host, config.port))?
|
||||
.run()
|
||||
|
||||
Reference in New Issue
Block a user