(
repository: &Path,
request_body: OwnerRequest,
)
| 833 | } |
| 834 | |
| 835 | fn request_with_reconnect( |
| 836 | repository: &Path, |
| 837 | request_body: OwnerRequest, |
| 838 | ) -> anyhow::Result<OwnerResponse> { |
| 839 | start_or_reconnect(repository)?; |
| 840 | let mut last_error = None; |
| 841 | for _ in 0..3 { |
| 842 | match request(repository, request_body.clone()) { |
| 843 | Ok(response) => return Ok(response), |
| 844 | Err(error) => { |
| 845 | last_error = Some(error); |
| 846 | start_or_reconnect(repository)?; |
| 847 | } |
| 848 | } |
| 849 | } |
| 850 | Err(last_error.unwrap_or_else(|| anyhow!("database owner request retry exhausted"))) |
| 851 | } |
| 852 | |
| 853 | fn run_outside_async_runtime<T, F>(operation: F) -> anyhow::Result<T> |
| 854 | where |
no test coverage detected