Skip to content

Commit

Permalink
feat: Improve error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
jopemachine committed Sep 30, 2024
1 parent 077d01f commit 472636d
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 78 deletions.
9 changes: 8 additions & 1 deletion examples/memstore/src/web_server_api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,12 @@ async fn get(data: web::Data<(HashStore, Raft)>, path: web::Path<u64>) -> impl R
#[get("/leader")]
async fn leader_id(data: web::Data<(HashStore, Raft)>) -> impl Responder {
let raft = data.clone();
let leader_id = raft.1.get_leader_id().await.to_string();
let leader_id = raft
.1
.get_leader_id()
.await
.expect("Failed to get leader id")
.to_string();
format!("{:?}", leader_id)
}

Expand Down Expand Up @@ -68,13 +73,15 @@ async fn snapshot(data: web::Data<(HashStore, Raft)>) -> impl Responder {
.1
.storage()
.await
.expect("Failed to get storage")
.last_index()
.expect("Failed to get last index");

let hard_state = raft
.1
.storage()
.await
.expect("Failed to get storage")
.hard_state()
.expect("Failed to get hard state");

Expand Down
4 changes: 2 additions & 2 deletions harness/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ pub async fn wait_for_until_cluster_size_increase(raft: Raft, target: usize) {
));

loop {
let size = raft.get_cluster_size().await;
let size = raft.get_cluster_size().await.unwrap();
if size >= target {
break;
}
Expand All @@ -107,7 +107,7 @@ pub async fn wait_for_until_cluster_size_decrease(raft: Raft, target: usize) {
));

loop {
let size = raft.get_cluster_size().await;
let size = raft.get_cluster_size().await.unwrap();
if size <= target {
break;
}
Expand Down
6 changes: 3 additions & 3 deletions harness/tests/data_replication.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub async fn test_data_replication() {

// Data should be replicated to all nodes.
for (_, raft) in rafts.iter_mut() {
let store = raft.state_machine().await;
let store = raft.state_machine().await.unwrap();
let store_lk = store.0.read().unwrap();
assert_eq!(store_lk.get(&1).unwrap(), "test");
}
Expand All @@ -59,7 +59,7 @@ pub async fn test_data_replication() {
wait_for_until_cluster_size_increase(raft_1.clone(), 4).await;

let raft_4 = rafts.get(&4).unwrap();
let store = raft_4.state_machine().await;
let store = raft_4.state_machine().await.unwrap();
let store_lk = store.0.read().unwrap();

// Data should be replicated to new joined node.
Expand All @@ -80,7 +80,7 @@ pub async fn test_data_replication() {
// New entry data should be replicated to all nodes including new joined node.
for (_, raft) in rafts.iter() {
// stop
let store = raft.state_machine().await;
let store = raft.state_machine().await.unwrap();
let store_lk = store.0.read().unwrap();
assert_eq!(store_lk.get(&2).unwrap(), "test2");
}
Expand Down
8 changes: 4 additions & 4 deletions harness/tests/leader_election.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ pub async fn test_leader_election_in_three_node_example() {

wait_for_until_cluster_size_decrease(raft_2.clone(), 2).await;

let leader_id = raft_2.get_leader_id().await;
let leader_id = raft_2.get_leader_id().await.unwrap();

let timer = timeout(Duration::from_secs(5), async {
while leader_id == 0 {
Expand Down Expand Up @@ -85,7 +85,7 @@ pub async fn test_leader_election_in_five_node_example() {

sleep(Duration::from_secs(2)).await;

let leader_id = raft_2.get_leader_id().await;
let leader_id = raft_2.get_leader_id().await.unwrap();

assert!(
[2, 3, 4, 5].contains(&leader_id),
Expand All @@ -106,10 +106,10 @@ pub async fn test_leader_election_in_five_node_example() {
wait_for_until_cluster_size_decrease(raft_k.clone(), 3).await;
sleep(Duration::from_secs(2)).await;

let leader_id = raft_k.get_leader_id().await;
let leader_id = raft_k.get_leader_id().await.unwrap();

assert!(leader_id != 0);
assert_eq!(raft_k.get_cluster_size().await, 3);
assert_eq!(raft_k.get_cluster_size().await.unwrap(), 3);

sleep(Duration::from_secs(2)).await;

Expand Down
Loading

0 comments on commit 472636d

Please sign in to comment.