aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-02-01 19:35:00 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-03 18:54:51 +0100
commit97be7b38fa3bd3172895f6ab44157e5236d65cd6 (patch)
tree2da7fce4bc111a8e193a4307ce1ba8a34faf4412
parent6a1079c4129157ae6c6e2a94b10d9c2b8f91c5b6 (diff)
downloadgarage-97be7b38fa3bd3172895f6ab44157e5236d65cd6.tar.gz
garage-97be7b38fa3bd3172895f6ab44157e5236d65cd6.zip
admin api: reorder things
-rw-r--r--src/api/admin/api_server.rs66
1 files changed, 32 insertions, 34 deletions
diff --git a/src/api/admin/api_server.rs b/src/api/admin/api_server.rs
index ecc538e4..1ab81be3 100644
--- a/src/api/admin/api_server.rs
+++ b/src/api/admin/api_server.rs
@@ -110,8 +110,6 @@ pub enum HttpEndpoint {
New(String),
}
-struct ArcAdminApiServer(Arc<AdminApiServer>);
-
impl AdminApiServer {
pub fn new(
garage: Arc<Garage>,
@@ -146,39 +144,7 @@ impl AdminApiServer {
.run_server(bind_addr, Some(0o220), must_exit)
.await
}
-}
-
-#[async_trait]
-impl ApiHandler for ArcAdminApiServer {
- const API_NAME: &'static str = "admin";
- const API_NAME_DISPLAY: &'static str = "Admin";
-
- type Endpoint = HttpEndpoint;
- type Error = Error;
-
- fn parse_endpoint(&self, req: &Request<IncomingBody>) -> Result<HttpEndpoint, Error> {
- if req.uri().path().starts_with("/v0/") {
- let endpoint_v0 = router_v0::Endpoint::from_request(req)?;
- let endpoint_v1 = router_v1::Endpoint::from_v0(endpoint_v0)?;
- Ok(HttpEndpoint::Old(endpoint_v1))
- } else if req.uri().path().starts_with("/v1/") {
- let endpoint_v1 = router_v1::Endpoint::from_request(req)?;
- Ok(HttpEndpoint::Old(endpoint_v1))
- } else {
- Ok(HttpEndpoint::New(req.uri().path().to_string()))
- }
- }
-
- async fn handle(
- &self,
- req: Request<IncomingBody>,
- endpoint: HttpEndpoint,
- ) -> Result<Response<ResBody>, Error> {
- self.0.handle_http_api(req, endpoint).await
- }
-}
-impl AdminApiServer {
async fn handle_http_api(
&self,
req: Request<IncomingBody>,
@@ -228,6 +194,38 @@ impl AdminApiServer {
}
}
+struct ArcAdminApiServer(Arc<AdminApiServer>);
+
+#[async_trait]
+impl ApiHandler for ArcAdminApiServer {
+ const API_NAME: &'static str = "admin";
+ const API_NAME_DISPLAY: &'static str = "Admin";
+
+ type Endpoint = HttpEndpoint;
+ type Error = Error;
+
+ fn parse_endpoint(&self, req: &Request<IncomingBody>) -> Result<HttpEndpoint, Error> {
+ if req.uri().path().starts_with("/v0/") {
+ let endpoint_v0 = router_v0::Endpoint::from_request(req)?;
+ let endpoint_v1 = router_v1::Endpoint::from_v0(endpoint_v0)?;
+ Ok(HttpEndpoint::Old(endpoint_v1))
+ } else if req.uri().path().starts_with("/v1/") {
+ let endpoint_v1 = router_v1::Endpoint::from_request(req)?;
+ Ok(HttpEndpoint::Old(endpoint_v1))
+ } else {
+ Ok(HttpEndpoint::New(req.uri().path().to_string()))
+ }
+ }
+
+ async fn handle(
+ &self,
+ req: Request<IncomingBody>,
+ endpoint: HttpEndpoint,
+ ) -> Result<Response<ResBody>, Error> {
+ self.0.handle_http_api(req, endpoint).await
+ }
+}
+
impl ApiEndpoint for HttpEndpoint {
fn name(&self) -> Cow<'static, str> {
match self {