aboutsummaryrefslogtreecommitdiff
path: root/src/api/admin/api.rs
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-01-31 17:19:26 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-03 18:54:51 +0100
commitb1629dd355806f40669d5d00db4e8e8f86a3fae2 (patch)
tree7b44e9d93946bf36a53596e4e8b269cfee95ae31 /src/api/admin/api.rs
parentd405a9f839779b1454e47e4b53a418603061c5e9 (diff)
downloadgarage-b1629dd355806f40669d5d00db4e8e8f86a3fae2.tar.gz
garage-b1629dd355806f40669d5d00db4e8e8f86a3fae2.zip
cli_v2: implement RetryBlockResync and PurgeBlocks
Diffstat (limited to 'src/api/admin/api.rs')
-rw-r--r--src/api/admin/api.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/api/admin/api.rs b/src/api/admin/api.rs
index 42872ad0..cde11bac 100644
--- a/src/api/admin/api.rs
+++ b/src/api/admin/api.rs
@@ -86,6 +86,8 @@ admin_endpoints![
// Block operations
ListBlockErrors,
GetBlockInfo,
+ RetryBlockResync,
+ PurgeBlocks,
];
local_admin_endpoints![
@@ -97,6 +99,8 @@ local_admin_endpoints![
// Block operations
ListBlockErrors,
GetBlockInfo,
+ RetryBlockResync,
+ PurgeBlocks,
];
#[derive(Debug, Clone, Serialize, Deserialize)]
@@ -765,3 +769,35 @@ pub enum BlockVersionBacklink {
key: Option<String>,
},
}
+
+// ---- RetryBlockResync ----
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(untagged)]
+pub enum LocalRetryBlockResyncRequest {
+ #[serde(rename_all = "camelCase")]
+ All { all: bool },
+ #[serde(rename_all = "camelCase")]
+ Blocks { block_hashes: Vec<String> },
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct LocalRetryBlockResyncResponse {
+ pub count: u64,
+}
+
+// ---- PurgeBlocks ----
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct LocalPurgeBlocksRequest(pub Vec<String>);
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase")]
+pub struct LocalPurgeBlocksResponse {
+ pub blocks_purged: u64,
+ pub objects_deleted: u64,
+ pub uploads_deleted: u64,
+ pub versions_deleted: u64,
+}