From afdfeafc072c4aff43213c5386e3717b997ff580 Mon Sep 17 00:00:00 2001 From: Arvind M Date: Mon, 3 Apr 2023 23:28:42 +0530 Subject: [PATCH] Fix get retention api --- server/src/handlers/http.rs | 7 +++++-- server/src/handlers/http/logstream.rs | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/server/src/handlers/http.rs b/server/src/handlers/http.rs index 765aad5cc..fe3be656b 100644 --- a/server/src/handlers/http.rs +++ b/server/src/handlers/http.rs @@ -151,8 +151,11 @@ pub fn configure_routes(cfg: &mut web::ServiceConfig) { web::resource("/stats").route(web::get().to(logstream::get_stats)), ) .service( - // GET "/logstream/{logstream}/retention" ==> Set retention for given logstream - web::resource("/retention").route(web::put().to(logstream::put_retention)), + web::resource("/retention") + // PUT "/logstream/{logstream}/retention" ==> Set retention for given logstream + .route(web::put().to(logstream::put_retention)) + // GET "/logstream/{logstream}/retention" ==> Get retention for given logstream + .route(web::get().to(logstream::get_retention)), ); cfg.service( diff --git a/server/src/handlers/http/logstream.rs b/server/src/handlers/http/logstream.rs index cc9b55415..dd9e41d95 100644 --- a/server/src/handlers/http/logstream.rs +++ b/server/src/handlers/http/logstream.rs @@ -183,6 +183,23 @@ pub async fn put_alert( )) } +pub async fn get_retention(req: HttpRequest) -> Result { + let stream_name: String = req.match_info().get("logstream").unwrap().parse().unwrap(); + let objectstore = CONFIG.storage().get_object_store(); + + if !objectstore.stream_exists(&stream_name).await? { + return Err(StreamError::StreamNotFound(stream_name.to_string())); + } + + let retention = CONFIG + .storage() + .get_object_store() + .get_retention(&stream_name) + .await?; + + Ok((web::Json(retention), StatusCode::OK)) +} + pub async fn put_retention( req: HttpRequest, body: web::Json,