forked from Deuxfleurs/garage
Better error reporting
This commit is contained in:
parent
82f4cd8719
commit
01a8acdeec
3 changed files with 6 additions and 6 deletions
|
@ -67,6 +67,7 @@ impl Error {
|
|||
match self {
|
||||
Error::BadRequest(_) => StatusCode::BAD_REQUEST,
|
||||
Error::NotFound => StatusCode::NOT_FOUND,
|
||||
Error::RPC(_) => StatusCode::SERVICE_UNAVAILABLE,
|
||||
_ => StatusCode::INTERNAL_SERVER_ERROR,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,6 +41,8 @@ pub enum RPCError {
|
|||
RMPEncode(#[error(source)] rmp_serde::encode::Error),
|
||||
#[error(display = "Messagepack decode error: {}", _0)]
|
||||
RMPDecode(#[error(source)] rmp_serde::decode::Error),
|
||||
#[error(display = "Too many errors: {:?}", _0)]
|
||||
TooManyErrors(Vec<String>),
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone)]
|
||||
|
@ -222,11 +224,8 @@ impl<M: RpcMessage + 'static> RpcClient<M> {
|
|||
|
||||
Ok(results)
|
||||
} else {
|
||||
let mut msg = "Too many failures:".to_string();
|
||||
for e in errors {
|
||||
msg += &format!("\n{}", e);
|
||||
}
|
||||
Err(Error::Message(msg))
|
||||
let errors = errors.iter().map(|e| format!("{}", e)).collect::<Vec<_>>();
|
||||
Err(Error::from(RPCError::TooManyErrors(errors)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue