aboutsummaryrefslogtreecommitdiff
path: root/src/api/admin/node.rs
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-02-05 14:22:10 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-05 14:22:10 +0100
commit9f468b4439bdd5e2e67a6215f941556310877155 (patch)
tree7524ac5326e069d014fd25b624d794d52aa5e745 /src/api/admin/node.rs
parent97be7b38fa3bd3172895f6ab44157e5236d65cd6 (diff)
downloadgarage-9f468b4439bdd5e2e67a6215f941556310877155.tar.gz
garage-9f468b4439bdd5e2e67a6215f941556310877155.zip
cli_v2: implement CreateMetadataSnapshot
Diffstat (limited to 'src/api/admin/node.rs')
-rw-r--r--src/api/admin/node.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/api/admin/node.rs b/src/api/admin/node.rs
new file mode 100644
index 00000000..8c79acfd
--- /dev/null
+++ b/src/api/admin/node.rs
@@ -0,0 +1,23 @@
+use std::sync::Arc;
+
+use async_trait::async_trait;
+
+use garage_model::garage::Garage;
+
+use crate::api::*;
+use crate::error::Error;
+use crate::{Admin, RequestHandler};
+
+#[async_trait]
+impl RequestHandler for LocalCreateMetadataSnapshotRequest {
+ type Response = LocalCreateMetadataSnapshotResponse;
+
+ async fn handle(
+ self,
+ garage: &Arc<Garage>,
+ _admin: &Admin,
+ ) -> Result<LocalCreateMetadataSnapshotResponse, Error> {
+ garage_model::snapshot::async_snapshot_metadata(garage).await?;
+ Ok(LocalCreateMetadataSnapshotResponse)
+ }
+}