Skip to content

Commit

Permalink
change: use structopt to impl config default values
Browse files Browse the repository at this point in the history
  • Loading branch information
drmingdrmer committed Sep 13, 2021
1 parent 46bb3b1 commit 2cd23a3
Show file tree
Hide file tree
Showing 35 changed files with 188 additions and 275 deletions.
2 changes: 2 additions & 0 deletions async-raft/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ readme = "../README.md"
[dependencies]
anyhow = "1.0.32"
async-trait = "0.1.36"
byte-unit = "4.0.12"
bytes = "1.0"
derive_more = { version="0.99.9", default-features=false, features=["from"] }
futures = "0.3"
log = "0.4"
rand = "0.8"
serde = { version="1", features=["derive"] }
structopt = "0.3"
thiserror = "1.0.29"
tokio = { version="1.8", default-features=false, features=["fs", "io-util", "macros", "rt", "rt-multi-thread", "sync", "time"] }
tracing = "0.1.26"
Expand Down
326 changes: 131 additions & 195 deletions async-raft/src/config.rs

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion async-raft/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ use serde::de::DeserializeOwned;
use serde::Serialize;

pub use crate::config::Config;
pub use crate::config::ConfigBuilder;
pub use crate::config::SnapshotPolicy;
pub use crate::core::State;
pub use crate::error::ChangeConfigError;
Expand Down
9 changes: 1 addition & 8 deletions async-raft/tests/add_remove_voter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,7 @@ async fn add_remove_voter() -> Result<()> {
let left_members = btreeset![0, 1, 2, 3];

// Setup test dependencies.
let config = Arc::new(
Config::build("test".into())
// .election_timeout_max(50)
// .election_timeout_min(20)
// .heartbeat_interval(10)
.validate()
.expect("failed to build Raft config"),
);
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/api_install_snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ async fn snapshot_ge_half_threshold() -> Result<()> {
let (_log_guard, ut_span) = init_ut!();
let _ent = ut_span.enter();

let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut want = 0;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/append_conflicts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ async fn append_conflicts() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/append_inconsistent_log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ async fn append_inconsistent_log() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/client_reads.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ async fn client_reads() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;
router.new_raft_node(1).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/client_writes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ async fn client_writes() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;
router.new_raft_node(1).await;
Expand Down
9 changes: 2 additions & 7 deletions async-raft/tests/compaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use anyhow::Result;
use async_raft::raft::MembershipConfig;
use async_raft::Config;
use async_raft::LogId;
use async_raft::SnapshotPolicy;
use async_raft::State;
use fixtures::RaftRouter;
use maplit::btreeset;
Expand All @@ -29,12 +28,8 @@ async fn compaction() -> Result<()> {
let snapshot_threshold: u64 = 50;

// Setup test dependencies.
let config = Arc::new(
Config::build("test".into())
.snapshot_policy(SnapshotPolicy::LogsSinceLast(snapshot_threshold))
.validate()
.expect("failed to build Raft config"),
);
let config =
Arc::new(Config::build(&["foo", "--snapshot-policy", "since_last:50"]).expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/concurrent_write_and_add_non_voter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ async fn concurrent_write_and_add_non_voter() -> Result<()> {
let candidates = btreeset![0, 1, 2];

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

router.new_raft_node(0).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/conflict_with_empty_entries.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ async fn conflict_with_empty_entries() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

router.new_raft_node(0).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/current_leader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ async fn current_leader() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;
router.new_raft_node(1).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/dynamic_membership.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ async fn dynamic_membership() -> Result<()> {
let _ent = span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/elect_compare_last_log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ async fn elect_compare_last_log() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let sto0 = router.new_store(0).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/initialization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ async fn initialization() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;
router.new_raft_node(1).await;
Expand Down
16 changes: 10 additions & 6 deletions async-raft/tests/lagging_network_write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,16 @@ async fn lagging_network_write() -> Result<()> {
let timeout = Some(tokio::time::Duration::from_millis(2000));

let config = Arc::new(
Config::build("test".into())
.heartbeat_interval(100)
.election_timeout_min(300)
.election_timeout_max(600)
.validate()
.expect("failed to build Raft config"),
Config::build(&[
"foo",
"--heartbeat-interval",
"100",
"--election-timeout-min",
"300",
"--election-timeout-max",
"600",
])
.expect("failed to build Raft config"),
);
let router = RaftRouter::builder(config).send_delay(50).build();
let router = Arc::new(router);
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/leader_metrics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ async fn leader_metrics() -> Result<()> {
let left_members = btreeset![0, 1, 2, 3];

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/members_012_to_234.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ async fn members_012_to_234() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/members_0_to_012.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ async fn members_0_to_012() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/members_leader_fix_partial.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ async fn members_leader_fix_partial() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut want = router.new_nodes_from_single(btreeset! {0}, btreeset! {}).await?;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/metrics_state_machine_consistency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ async fn metrics_state_machine_consistency() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

router.new_raft_node(0).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/metrics_wait.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ async fn metrics_wait() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let cluster = btreeset![0];
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/non_voter_restart.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ async fn non_voter_restart() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

router.new_raft_node(0).await;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ async fn replication_1_voter_to_isolated_non_voter() -> Result<()> {
let (_log_guard, ut_span) = init_ut!();
let _ent = ut_span.enter();

let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut n_logs = router.new_nodes_from_single(btreeset! {0}, btreeset! {1}).await?;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/shutdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ async fn initialization() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;
router.new_raft_node(1).await;
Expand Down
2 changes: 1 addition & 1 deletion async-raft/tests/singlenode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ async fn singlenode() -> Result<()> {
let _ent = ut_span.enter();

// Setup test dependencies.
let config = Arc::new(Config::build("test".into()).validate().expect("failed to build Raft config"));
let config = Arc::new(Config::default().validate().expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));
router.new_raft_node(0).await;

Expand Down
14 changes: 8 additions & 6 deletions async-raft/tests/snapshot_chunk_size.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use anyhow::Result;
use async_raft::raft::MembershipConfig;
use async_raft::Config;
use async_raft::LogId;
use async_raft::SnapshotPolicy;
use async_raft::State;
use fixtures::RaftRouter;
use maplit::btreeset;
Expand All @@ -30,11 +29,14 @@ async fn snapshot_chunk_size() -> Result<()> {
let snapshot_threshold: u64 = 10;

let config = Arc::new(
Config::build("test".into())
.snapshot_policy(SnapshotPolicy::LogsSinceLast(snapshot_threshold))
.snapshot_max_chunk_size(10)
.validate()
.expect("failed to build Raft config"),
Config::build(&[
"foo",
"--snapshot-policy",
"since_last:10",
"--snapshot-max-chunk-size",
"10",
])
.expect("failed to build Raft config"),
);
let router = Arc::new(RaftRouter::new(config.clone()));

Expand Down
9 changes: 2 additions & 7 deletions async-raft/tests/snapshot_ge_half_threshold.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use anyhow::Result;
use async_raft::raft::MembershipConfig;
use async_raft::Config;
use async_raft::LogId;
use async_raft::SnapshotPolicy;
use async_raft::State;
use fixtures::RaftRouter;
use maplit::btreeset;
Expand Down Expand Up @@ -33,12 +32,8 @@ async fn snapshot_ge_half_threshold() -> Result<()> {
let snapshot_threshold: u64 = 10;
let log_cnt = snapshot_threshold + 6;

let config = Arc::new(
Config::build("test".into())
.snapshot_policy(SnapshotPolicy::LogsSinceLast(snapshot_threshold))
.validate()
.expect("failed to build Raft config"),
);
let config =
Arc::new(Config::build(&["foo", "--snapshot-policy", "since_last:10"]).expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut want = 0;
Expand Down
9 changes: 2 additions & 7 deletions async-raft/tests/snapshot_line_rate_to_snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use std::time::Duration;
use anyhow::Result;
use async_raft::Config;
use async_raft::LogId;
use async_raft::SnapshotPolicy;
use fixtures::RaftRouter;
use maplit::btreeset;

Expand All @@ -31,12 +30,8 @@ async fn snapshot_line_rate_to_snapshot() -> Result<()> {

let snapshot_threshold: u64 = 10;

let config = Arc::new(
Config::build("test".into())
.snapshot_policy(SnapshotPolicy::LogsSinceLast(snapshot_threshold))
.validate()
.expect("failed to build Raft config"),
);
let config =
Arc::new(Config::build(&["foo", "--snapshot-policy", "since_last:10"]).expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut n_logs = router.new_nodes_from_single(btreeset! {0}, btreeset! {1}).await?;
Expand Down
9 changes: 2 additions & 7 deletions async-raft/tests/snapshot_overrides_membership.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ use async_raft::Config;
use async_raft::LogId;
use async_raft::RaftNetwork;
use async_raft::RaftStorage;
use async_raft::SnapshotPolicy;
use async_raft::State;
use fixtures::RaftRouter;
use maplit::btreeset;
Expand All @@ -36,12 +35,8 @@ async fn snapshot_overrides_membership() -> Result<()> {

let snapshot_threshold: u64 = 10;

let config = Arc::new(
Config::build("test".into())
.snapshot_policy(SnapshotPolicy::LogsSinceLast(snapshot_threshold))
.validate()
.expect("failed to build Raft config"),
);
let config =
Arc::new(Config::build(&["foo", "--snapshot-policy", "since_last:10"]).expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut want = 0;
Expand Down
9 changes: 2 additions & 7 deletions async-raft/tests/snapshot_uses_prev_snap_membership.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ use async_raft::raft::MembershipConfig;
use async_raft::Config;
use async_raft::LogId;
use async_raft::RaftStorage;
use async_raft::SnapshotPolicy;
use async_raft::State;
use fixtures::RaftRouter;
use maplit::btreeset;
Expand All @@ -32,12 +31,8 @@ async fn snapshot_uses_prev_snap_membership() -> Result<()> {

let snapshot_threshold: u64 = 10;

let config = Arc::new(
Config::build("test".into())
.snapshot_policy(SnapshotPolicy::LogsSinceLast(snapshot_threshold))
.validate()
.expect("failed to build Raft config"),
);
let config =
Arc::new(Config::build(&["foo", "--snapshot-policy", "since_last:10"]).expect("failed to build Raft config"));
let router = Arc::new(RaftRouter::new(config.clone()));

let mut want = 0;
Expand Down
Loading

0 comments on commit 2cd23a3

Please sign in to comment.