aboutsummaryrefslogtreecommitdiff
path: root/src/api/admin/node.rs
diff options
context:
space:
mode:
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)
+ }
+}