diff options
author | Alex Auvolat <alex@adnab.me> | 2020-11-08 15:04:30 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2020-11-08 15:05:28 +0100 |
commit | a50fa70d45f8b5af68d23d60c3bac2af4ecceb58 (patch) | |
tree | d3014cc2739c5a1bce62ff35efc8417b79ff46ef /src/rpc | |
parent | 54166d2a09f488bff080469160d4df6a78db1a3f (diff) | |
download | garage-error-refactoring.tar.gz garage-error-refactoring.zip |
Refactor error management in API parterror-refactoring
Diffstat (limited to 'src/rpc')
-rw-r--r-- | src/rpc/membership.rs | 2 | ||||
-rw-r--r-- | src/rpc/rpc_server.rs | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/rpc/membership.rs b/src/rpc/membership.rs index d19c1eb7..697cddd0 100644 --- a/src/rpc/membership.rs +++ b/src/rpc/membership.rs @@ -373,7 +373,7 @@ impl System { Message::AdvertiseNodesUp(adv) => self2.handle_advertise_nodes_up(&adv).await, Message::AdvertiseConfig(adv) => self2.handle_advertise_config(&adv).await, - _ => Err(Error::BadRequest(format!("Unexpected RPC message"))), + _ => Err(Error::BadRPC(format!("Unexpected RPC message"))), } } }); diff --git a/src/rpc/rpc_server.rs b/src/rpc/rpc_server.rs index 4386d733..4113f15b 100644 --- a/src/rpc/rpc_server.rs +++ b/src/rpc/rpc_server.rs @@ -61,7 +61,10 @@ where let err_str = format!("{}", e); let rep_bytes = rmp_to_vec_all_named::<Result<M, String>>(&Err(err_str))?; let mut err_response = Response::new(Body::from(rep_bytes)); - *err_response.status_mut() = e.http_status_code(); + *err_response.status_mut() = match e { + Error::BadRPC(_) => StatusCode::BAD_REQUEST, + _ => StatusCode::INTERNAL_SERVER_ERROR, + }; warn!( "RPC error ({}): {} ({} ms)", name, |