diff options
author | Alex <alex@adnab.me> | 2022-12-11 17:25:28 +0000 |
---|---|---|
committer | Alex <alex@adnab.me> | 2022-12-11 17:25:28 +0000 |
commit | defd7d9e6353e10b0b9d58b66aad4f04e7d50c41 (patch) | |
tree | e6f35cbe9f3625ce39bdd8b5a32898a6bbc47ba5 /src/api/admin/router.rs | |
parent | 35f8e8e2fb34d836174ec6c08806b249e0a2873f (diff) | |
parent | 533afcf4e13022c46fd21ec51ca2a9969692ef4c (diff) | |
download | garage-defd7d9e6353e10b0b9d58b66aad4f04e7d50c41.tar.gz garage-defd7d9e6353e10b0b9d58b66aad4f04e7d50c41.zip |
Merge pull request 'Implement /health admin API endpoint to check node health' (#440) from admin-health-api into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/440
Diffstat (limited to 'src/api/admin/router.rs')
-rw-r--r-- | src/api/admin/router.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/api/admin/router.rs b/src/api/admin/router.rs index 3eee8b67..3fa07b3c 100644 --- a/src/api/admin/router.rs +++ b/src/api/admin/router.rs @@ -6,6 +6,7 @@ use crate::admin::error::*; use crate::router_macros::*; pub enum Authorization { + None, MetricsToken, AdminToken, } @@ -16,8 +17,10 @@ router_match! {@func #[derive(Debug, Clone, PartialEq, Eq)] pub enum Endpoint { Options, + Health, Metrics, GetClusterStatus, + GetClusterHealth, ConnectClusterNodes, // Layout GetClusterLayout, @@ -88,8 +91,10 @@ impl Endpoint { let res = router_match!(@gen_path_parser (req.method(), path, query) [ OPTIONS _ => Options, + GET "/health" => Health, GET "/metrics" => Metrics, GET "/v0/status" => GetClusterStatus, + GET "/v0/health" => GetClusterHealth, POST "/v0/connect" => ConnectClusterNodes, // Layout endpoints GET "/v0/layout" => GetClusterLayout, @@ -130,6 +135,7 @@ impl Endpoint { /// Get the kind of authorization which is required to perform the operation. pub fn authorization_type(&self) -> Authorization { match self { + Self::Health => Authorization::None, Self::Metrics => Authorization::MetricsToken, _ => Authorization::AdminToken, } @@ -137,6 +143,7 @@ impl Endpoint { } generateQueryParameters! { + "format" => format, "id" => id, "search" => search, "globalAlias" => global_alias, |