diff options
author | Alex Auvolat <alex@adnab.me> | 2022-06-08 17:37:16 +0200 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-06-08 17:37:16 +0200 |
commit | f8a6fff2b7bb754fa315e1c00b0f6adea4586fa8 (patch) | |
tree | 8b55826e376717486280f89776d1073ef61b0aad /src/garage/cli | |
parent | 425fe56be8226615a366a7131e4f52ecac81371a (diff) | |
download | garage-f8a6fff2b7bb754fa315e1c00b0f6adea4586fa8.tar.gz garage-f8a6fff2b7bb754fa315e1c00b0f6adea4586fa8.zip |
First implementation of counter repair procedure
Diffstat (limited to 'src/garage/cli')
-rw-r--r-- | src/garage/cli/structs.rs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/garage/cli/structs.rs b/src/garage/cli/structs.rs index a0c49aeb..575ac857 100644 --- a/src/garage/cli/structs.rs +++ b/src/garage/cli/structs.rs @@ -33,10 +33,15 @@ pub enum Command { #[structopt(name = "migrate")] Migrate(MigrateOpt), - /// Start repair of node data + /// Start repair of node data on remote node #[structopt(name = "repair")] Repair(RepairOpt), + /// Offline reparation of node data (these repairs must be run offline + /// directly on the server node) + #[structopt(name = "offline-repair")] + OfflineRepair(OfflineRepairOpt), + /// Gather node statistics #[structopt(name = "stats")] Stats(StatsOpt), @@ -406,6 +411,23 @@ pub enum RepairWhat { } #[derive(Serialize, Deserialize, StructOpt, Debug, Clone)] +pub struct OfflineRepairOpt { + /// Confirm the launch of the repair operation + #[structopt(long = "yes")] + pub yes: bool, + + #[structopt(subcommand)] + pub what: OfflineRepairWhat, +} + +#[derive(Serialize, Deserialize, StructOpt, Debug, Eq, PartialEq, Clone)] +pub enum OfflineRepairWhat { + /// Repair K2V item counters + #[structopt(name = "k2v_item_counters")] + K2VItemCounters, +} + +#[derive(Serialize, Deserialize, StructOpt, Debug, Clone)] pub struct StatsOpt { /// Gather statistics from all nodes #[structopt(short = "a", long = "all-nodes")] |