Skip to content

Commit

Permalink
[backup] use clap
Browse files Browse the repository at this point in the history
  • Loading branch information
msmouse committed Sep 7, 2022
1 parent 02ebd07 commit 78bbe1f
Show file tree
Hide file tree
Showing 20 changed files with 147 additions and 141 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion storage/backup/backup-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ anyhow = "1.0.57"
async-trait = "0.1.53"
bcs = "0.1.3"
bytes = "1.1.0"
clap = { version = "3.1.8", features=["derive"]}
futures = "0.3.21"
itertools = "0.10.0"
num_cpus = "1.13.1"
Expand All @@ -23,7 +24,6 @@ regex = "1.5.5"
reqwest = { version = "0.11.10", features = ["stream"], default-features = false }
serde = { version = "1.0.137", features = ["derive"] }
serde_json = "1.0.81"
structopt = "0.3.21"
tokio = { version = "1.21.0", features = ["full"] }
tokio-stream = "0.1.8"
tokio-util = { version = "0.7.2", features = ["compat"] }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ use crate::{
use anyhow::{anyhow, ensure, Result};
use aptos_logger::prelude::*;
use aptos_types::{ledger_info::LedgerInfoWithSignatures, waypoint::Waypoint};
use clap::Parser;
use once_cell::sync::Lazy;
use std::{convert::TryInto, str::FromStr, sync::Arc};
use structopt::StructOpt;
use tokio::io::AsyncWriteExt;

#[derive(StructOpt)]
#[derive(Parser)]
pub struct EpochEndingBackupOpt {
#[structopt(long = "start-epoch", help = "First epoch to be backed up.")]
#[clap(long = "start-epoch", help = "First epoch to be backed up.")]
pub start_epoch: u64,

#[structopt(
#[clap(
long = "end-epoch",
help = "Epoch before which epoch ending backup stops. Pass in the current open epoch to get all."
)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ use aptos_types::{
transaction::Version,
waypoint::Waypoint,
};
use clap::Parser;
use futures::StreamExt;
use std::{collections::HashMap, sync::Arc, time::Instant};
use structopt::StructOpt;

#[derive(StructOpt)]
#[derive(Parser)]
pub struct EpochEndingRestoreOpt {
#[structopt(long = "epoch-ending-manifest")]
#[clap(long = "epoch-ending-manifest")]
pub manifest_handle: FileHandle,
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ use aptos_types::{
transaction::Version,
};
use bytes::Bytes;
use clap::Parser;
use once_cell::sync::Lazy;
use std::{convert::TryInto, str::FromStr, sync::Arc};
use structopt::StructOpt;
use tokio::io::AsyncWriteExt;
use tokio::time::Instant;

#[derive(StructOpt)]
#[derive(Parser)]
pub struct StateSnapshotBackupOpt {
#[structopt(
#[clap(
long = "state-snapshot-epoch",
help = "Epoch at the end of which a state snapshot is to be taken."
)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,16 @@ use aptos_types::{
state_store::{state_key::StateKey, state_value::StateValue},
transaction::Version,
};
use clap::Parser;
use std::sync::Arc;
use storage_interface::StateSnapshotReceiver;
use structopt::StructOpt;
use tokio::time::Instant;

#[derive(StructOpt)]
#[derive(Parser)]
pub struct StateSnapshotRestoreOpt {
#[structopt(long = "state-manifest")]
#[clap(long = "state-manifest")]
pub manifest_handle: FileHandle,
#[structopt(long = "state-into-version")]
#[clap(long = "state-into-version")]
pub version: Version,
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ use crate::{
use anyhow::{anyhow, Result};
use aptos_logger::prelude::*;
use aptos_types::transaction::Version;
use clap::Parser;
use once_cell::sync::Lazy;
use std::{convert::TryInto, str::FromStr, sync::Arc};
use structopt::StructOpt;
use tokio::io::AsyncWriteExt;

#[derive(StructOpt)]
#[derive(Parser)]
pub struct TransactionBackupOpt {
#[structopt(long = "start-version", help = "First transaction to backup.")]
#[clap(long = "start-version", help = "First transaction to backup.")]
pub start_version: u64,

#[structopt(long = "num_transactions", help = "Number of transactions to backup")]
#[clap(long = "num_transactions", help = "Number of transactions to backup")]
pub num_transactions: usize,
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ use aptos_types::{
};
use aptos_vm::AptosVM;
use aptosdb::backup::restore_handler::RestoreHandler;
use clap::Parser;
use executor::chunk_executor::ChunkExecutor;
use executor_types::TransactionReplayer;
use futures::{
Expand All @@ -46,16 +47,15 @@ use std::{
time::Instant,
};
use storage_interface::DbReaderWriter;
use structopt::StructOpt;
use tokio::io::BufReader;

const BATCH_SIZE: usize = if cfg!(test) { 2 } else { 10000 };

#[derive(StructOpt)]
#[derive(Parser)]
pub struct TransactionRestoreOpt {
#[structopt(long = "transaction-manifest")]
#[clap(long = "transaction-manifest")]
pub manifest_handle: FileHandle,
#[structopt(
#[clap(
long = "replay-transactions-from-version",
help = "Transactions with this version and above will be replayed so state and events are \
gonna pop up. Requires state at the version right before this to exist, either by \
Expand Down
12 changes: 6 additions & 6 deletions storage/backup/backup-cli/src/bin/db-backup-verify.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ use backup_cli::{
storage::StorageOpt,
utils::{ConcurrentDownloadsOpt, TrustedWaypointOpt},
};
use structopt::StructOpt;
use clap::Parser;

#[derive(StructOpt)]
#[derive(Parser)]
struct Opt {
#[structopt(flatten)]
#[clap(flatten)]
metadata_cache_opt: MetadataCacheOpt,
#[structopt(flatten)]
#[clap(flatten)]
trusted_waypoints_opt: TrustedWaypointOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
#[structopt(flatten)]
#[clap(flatten)]
concurrent_downloads: ConcurrentDownloadsOpt,
}

Expand Down
76 changes: 41 additions & 35 deletions storage/backup/backup-cli/src/bin/db-backup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use std::sync::Arc;

use anyhow::Result;
use structopt::StructOpt;
use clap::Parser;

use aptos_logger::{prelude::*, Level, Logger};
use aptos_push_metrics::MetricsPusher;
Expand All @@ -23,104 +23,110 @@ use backup_cli::{
},
};

#[derive(StructOpt)]
#[structopt(about = "Ledger backup tool.")]
#[derive(Parser)]
#[clap(about = "Ledger backup tool.")]
enum Command {
#[structopt(about = "Manually run one shot commands.")]
#[clap(subcommand, about = "Manually run one shot commands.")]
OneShot(OneShotCommand),
#[structopt(about = "Long running process backing up the chain continuously.")]
#[clap(
subcommand,
about = "Long running process backing up the chain continuously."
)]
Coordinator(CoordinatorCommand),
}

#[derive(StructOpt)]
#[derive(Parser)]
enum OneShotCommand {
#[structopt(about = "Query the backup service builtin in the local node.")]
#[clap(
subcommand,
about = "Query the backup service builtin in the local node."
)]
Query(OneShotQueryType),
#[structopt(about = "Do a one shot backup.")]
#[clap(about = "Do a one shot backup.")]
Backup(OneShotBackupOpt),
}

#[derive(StructOpt)]
#[derive(Parser)]
enum OneShotQueryType {
#[structopt(
#[clap(
about = "Queries the latest epoch, committed version and synced version of the local \
node, via the backup service within it."
)]
NodeState(OneShotQueryNodeStateOpt),
#[structopt(
#[clap(
about = "Queries the latest epoch and versions of the existing backups in the storage."
)]
BackupStorageState(OneShotQueryBackupStorageStateOpt),
}

#[derive(StructOpt)]
#[derive(Parser)]
struct OneShotQueryNodeStateOpt {
#[structopt(flatten)]
#[clap(flatten)]
client: BackupServiceClientOpt,
}

#[derive(StructOpt)]
#[derive(Parser)]
struct OneShotQueryBackupStorageStateOpt {
#[structopt(flatten)]
#[clap(flatten)]
metadata_cache: MetadataCacheOpt,
#[structopt(flatten)]
#[clap(flatten)]
concurrent_downloads: ConcurrentDownloadsOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
}

#[derive(StructOpt)]
#[derive(Parser)]
struct OneShotBackupOpt {
#[structopt(flatten)]
#[clap(flatten)]
global: GlobalBackupOpt,

#[structopt(flatten)]
#[clap(flatten)]
client: BackupServiceClientOpt,

#[structopt(subcommand)]
#[clap(subcommand)]
backup_type: BackupType,
}

#[derive(StructOpt)]
#[derive(Parser)]
enum BackupType {
EpochEnding {
#[structopt(flatten)]
#[clap(flatten)]
opt: EpochEndingBackupOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
StateSnapshot {
#[structopt(flatten)]
#[clap(flatten)]
opt: StateSnapshotBackupOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
Transaction {
#[structopt(flatten)]
#[clap(flatten)]
opt: TransactionBackupOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
}

#[derive(StructOpt)]
#[derive(Parser)]
enum CoordinatorCommand {
#[structopt(about = "Run the coordinator.")]
#[clap(about = "Run the coordinator.")]
Run(CoordinatorRunOpt),
}

#[derive(StructOpt)]
#[derive(Parser)]
struct CoordinatorRunOpt {
#[structopt(flatten)]
#[clap(flatten)]
global: GlobalBackupOpt,

#[structopt(flatten)]
#[clap(flatten)]
client: BackupServiceClientOpt,

#[structopt(flatten)]
#[clap(flatten)]
coordinator: BackupCoordinatorOpt,

#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
}

Expand Down
26 changes: 13 additions & 13 deletions storage/backup/backup-cli/src/bin/db-restore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,42 +14,42 @@ use backup_cli::{
storage::StorageOpt,
utils::{GlobalRestoreOpt, GlobalRestoreOptions},
};
use clap::Parser;
use std::convert::TryInto;
use structopt::StructOpt;

#[derive(StructOpt)]
#[derive(Parser)]
struct Opt {
#[structopt(flatten)]
#[clap(flatten)]
global: GlobalRestoreOpt,

#[structopt(subcommand)]
#[clap(subcommand)]
restore_type: RestoreType,
}

#[derive(StructOpt)]
#[derive(Parser)]
enum RestoreType {
EpochEnding {
#[structopt(flatten)]
#[clap(flatten)]
opt: EpochEndingRestoreOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
StateSnapshot {
#[structopt(flatten)]
#[clap(flatten)]
opt: StateSnapshotRestoreOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
Transaction {
#[structopt(flatten)]
#[clap(flatten)]
opt: TransactionRestoreOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
Auto {
#[structopt(flatten)]
#[clap(flatten)]
opt: RestoreCoordinatorOpt,
#[structopt(subcommand)]
#[clap(subcommand)]
storage: StorageOpt,
},
}
Expand Down
Loading

0 comments on commit 78bbe1f

Please sign in to comment.